1.requests
requests模块是python的第三方模块,用来发送网路请求,常用于爬虫,能够完全满足基于HTTP协议的接口测试。
requests模块安装
安装:pip install requests
验证:pip show requests
其他请求模块
urllib(古董)
requests(好用):同步,阻塞模块
aiohttp:异步请求模块
requests请求
例1
# 请求方法:get # 请求地址:http://www.baidu.com # 响应数据 import requests url='http://www.baidu.com' ser=requests.get(url) ser.encoding='utf-8' print(ser.text)
例2
import requests url='http://www.baidu.com/s?' params={'wd':'花儿为什么这样红'} res=requests.get(url,params=params) res.encoding='utf-8' with open('test01.html','w',encoding='utf-8')as f: f.write(res.text)
例3
import requests url='http://www.baidu.com/s?' params={'wd':'花儿为什么这样红'} hds={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36","cookie":"BIDUPSID=EC4EEBADF48D8665E6839E1C01C33433; PSTM=1622084630; BAIDUID=EC4EEBADF48D86654AFF66BB250B9EF8:FG=1; __yjs_duid=1_711d220d483b1680ef849db5353653701622084644957; BD_UPN=12314753; BCLID_BFESS=10823244749074511429; BDSFRCVID_BFESS=WMKOJexroG38mOjH_uIJuyuiLOGM4w5TDYLECrZpZjg7KlFVgVdREG0PtjJ5HU4bLrA9ogKK0mOTHv-F_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF_BFESS=tJAj_D-btK03fP36qR6sMJ8thmT22-usQ2ji2hcHMPoosI89hfn8yh40yt6thRQ0BgOx2Cb5JxbUoqRHLn5AKhIqbNJi2U5p5acbbq5TtUJMjlFGyh_M-xAXLHryKMnitIj9-pnKHlQrh459XP68bTkA5bjZKxtq3mkjbPbDfn028DKu-n5jHjcWDGoP; H_WISE_SIDS=110085_127969_164326_175667_176398_178384_178623_179348_179380_179437_181133_181135_181588_182000_182238_182273_182531_182860_183030_183329_183345_184042_184201_184267_184320_184560_184734_184793_184811_185029_185241_185268_185511_185517_185557_185752_185880_186038_186068_186318_186411_186510_186596_186635_186662_186682_186841_186896_187023_187190_187215_187292_187310_187432_187447_187669_187683_187726_187816_187928_187935_187963_188182_188296_188353_188426_188467_188664_188730_188831_188845_188875_188899; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; ab_sr=1.0.1_ZWY5MWUxZWM4MTU5MWQwNDE2NjkzNTFhODg0OTVjNWViOWFiNDdmNzU3YjhhZDYwMTc5ZTlkMzNhMmFkMTMxZTEwMGY0YTRlOWEwM2Q3MDZhM2VhYzc4YzNhODEwZWIyYjdkNzcyYjZhMDdiODZhODQzMDA2OTNkMDYxMDg0ZmUwNTc5MjBmYWY2MTNlNWJjOGY3YzI1YTUzNTU2NjBjMDI3OGI1MjcxOTk1YmNmODcwZTc5OGM2OGFiZDM1OGY1; BAIDUID_BFESS=9E0F0B8E88B7202737383610F65D36EE:FG=1; BDRCVFR[8gzLr2xelNt]=IdAnGome-nsnWnYPi4WUvY; delPer=0; BD_CK_SAM=1; PSINO=2; COOKIE_SESSION=70583_0_8_7_13_34_1_0_5_8_3_8_19439_0_0_0_1633696041_0_1633766571%7C9%23375892_8_1632653484%7C5; BDUSS=M4OUN1b3gyLU5RV0lMYkx5M3hSV1IxUm1pOXNoYXVFbHM2d2pOd3lMZHYyb2hoRUFBQUFBJCQAAAAAAAAAAAEAAAA0MdZU18~R18zst-8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9NYWFvTWFhaE; BDUSS_BFESS=M4OUN1b3gyLU5RV0lMYkx5M3hSV1IxUm1pOXNoYXVFbHM2d2pOd3lMZHYyb2hoRUFBQUFBJCQAAAAAAAAAAAEAAAA0MdZU18~R18zst-8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9NYWFvTWFhaE; H_PS_PSSID=34644_34446_34067_31254_34655_34712_34584_34518_34705_26350_34627_34428_34702_34681; H_PS_645EC=e2079NFw4DKG2xJD8D697vbITYGR%2FE%2Bq2nFY6HOVnKZ78MVlsqUccYWv0%2FA%2FNsA1EQ0N; BA_HECTOR=848hag2h04a1018gda1gm2jbq0r"} res=requests.get(url,params=params,headers=hds) res.encoding='utf-8' with open('test01.html','w',encoding='utf-8')as f: f.write(res.text)
例4
import requests import json url='http://ihrm-test.itheima.net/api/sys/login' data={'mobile':'12345676543','password':'123456'} headers={'Content-Type':'application/json'} res=requests.post(url,data=data,headers=headers) one=json.loads(res.text) #转成json格式方法1# print(one) print(type(res.json())) print(res.json()) #转成json格式方法2#
例5
import requests url='https://w.wallhaven.cc/full/72/wallhaven-72rd8e.jpg' headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'} ser=requests.get(url,headers=headers) with open('001.jpg','wb')as f: f.write(ser.content)
requests模块对cookie的处理
在headers中多加一个cookie
例
import requests
url='http://www.baidu.com/s?'
params={'wd':'花儿为什么这样红'}
hds={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36","cookie":"BIDUPSID=EC4EEBADF48D8665E6839E1C01C33433; PSTM=1622084630; BAIDUID=EC4EEBADF48D86654AFF66BB250B9EF8:FG=1; __yjs_duid=1_711d220d483b1680ef849db5353653701622084644957; BD_UPN=12314753; BCLID_BFESS=10823244749074511429; BDSFRCVID_BFESS=WMKOJexroG38mOjH_uIJuyuiLOGM4w5TDYLECrZpZjg7KlFVgVdREG0PtjJ5HU4bLrA9ogKK0mOTHv-F_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF_BFESS=tJAj_D-btK03fP36qR6sMJ8thmT22-usQ2ji2hcHMPoosI89hfn8yh40yt6thRQ0BgOx2Cb5JxbUoqRHLn5AKhIqbNJi2U5p5acbbq5TtUJMjlFGyh_M-xAXLHryKMnitIj9-pnKHlQrh459XP68bTkA5bjZKxtq3mkjbPbDfn028DKu-n5jHjcWDGoP; H_WISE_SIDS=110085_127969_164326_175667_176398_178384_178623_179348_179380_179437_181133_181135_181588_182000_182238_182273_182531_182860_183030_183329_183345_184042_184201_184267_184320_184560_184734_184793_184811_185029_185241_185268_185511_185517_185557_185752_185880_186038_186068_186318_186411_186510_186596_186635_186662_186682_186841_186896_187023_187190_187215_187292_187310_187432_187447_187669_187683_187726_187816_187928_187935_187963_188182_188296_188353_188426_188467_188664_188730_188831_188845_188875_188899; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; ab_sr=1.0.1_ZWY5MWUxZWM4MTU5MWQwNDE2NjkzNTFhODg0OTVjNWViOWFiNDdmNzU3YjhhZDYwMTc5ZTlkMzNhMmFkMTMxZTEwMGY0YTRlOWEwM2Q3MDZhM2VhYzc4YzNhODEwZWIyYjdkNzcyYjZhMDdiODZhODQzMDA2OTNkMDYxMDg0ZmUwNTc5MjBmYWY2MTNlNWJjOGY3YzI1YTUzNTU2NjBjMDI3OGI1MjcxOTk1YmNmODcwZTc5OGM2OGFiZDM1OGY1; BAIDUID_BFESS=9E0F0B8E88B7202737383610F65D36EE:FG=1; BDRCVFR[8gzLr2xelNt]=IdAnGome-nsnWnYPi4WUvY; delPer=0; BD_CK_SAM=1; PSINO=2; COOKIE_SESSION=70583_0_8_7_13_34_1_0_5_8_3_8_19439_0_0_0_1633696041_0_1633766571%7C9%23375892_8_1632653484%7C5; BDUSS=M4OUN1b3gyLU5RV0lMYkx5M3hSV1IxUm1pOXNoYXVFbHM2d2pOd3lMZHYyb2hoRUFBQUFBJCQAAAAAAAAAAAEAAAA0MdZU18~R18zst-8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9NYWFvTWFhaE; BDUSS_BFESS=M4OUN1b3gyLU5RV0lMYkx5M3hSV1IxUm1pOXNoYXVFbHM2d2pOd3lMZHYyb2hoRUFBQUFBJCQAAAAAAAAAAAEAAAA0MdZU18~R18zst-8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9NYWFvTWFhaE; H_PS_PSSID=34644_34446_34067_31254_34655_34712_34584_34518_34705_26350_34627_34428_34702_34681; H_PS_645EC=e2079NFw4DKG2xJD8D697vbITYGR%2FE%2Bq2nFY6HOVnKZ78MVlsqUccYWv0%2FA%2FNsA1EQ0N; BA_HECTOR=848hag2h04a1018gda1gm2jbq0r"}
res=requests.get(url,params=params,headers=hds)
res.encoding='utf-8'
with open('test01.html','w',encoding='utf-8')as f:
f.write(res.text)
打开网页账号是登录状态
session类自动封装cookie