python接口自动化--get请求
Get请求有2种情况:
-
第一种是一个纯url地址,没有问号,也没有参数
1 import requests 2 import urllib3 3 #忽略警告 4 urllib3.disable_warnings() 5 # InsecureRequestWarning 6 7 #SSLError,增加参数verify=False 8 res = requests.get("http://api.github.com/events",verify=False) 9 #json格式 10 print(res.json())
-
第二种是带问号和参数,增加params进行传参
1 import requests 2 import urllib3 3 urllib3.disable_warnings() 4 5 par = { 6 "key1":"value1", 7 "key2":"value2" 8 } 9 10 r = requests.get("http://httpbin.org/get",params=par) 11 print(r.json())#json格式 dict 12 print(r.text)#文本格式 str 13 print(r.encoding)#查看编码格式 14 print(r.content)#以字节方式打印响应体
-
增加headers,通过抓包看出,
-
User-Agent:python-requests/2.20.0,所以需要增加头部,伪造浏览器发请求
1 import requests 2 import urllib3 3 urllib3.disable_warnings() 4 5 6 par = { 7 "key1":"value1", 8 "key2":"value2" 9 } 10 11 h ={ 12 #伪造请求,模拟从浏览器发出请求 13 "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0", 14 #"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 15 # "Accept-Language":"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3", 16 # "Accept-Encoding": "gzip, deflate", 17 # "Connection": "keep-alive", 18 "Cache-Control": "max-age=0", 19 } 20 #通过抓包只传User-Agent,和Cache-Control 21 22 23 24 r = requests.get("http://httpbin.org/get",params=par,headers=h) 25 print(r.json())
-
response
response的返回内容还有其它更多信息
-- r.status_code #响应状态码
-- r.content #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
-- r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
-- r.json() #Requests中内置的JSON解码器
-- r.url # 获取url
-- r.encoding # 编码格式
-- r.cookies # 获取cookie
-- r.raw #返回原始响应体
-- r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
-- r.raise_for_status() #失败请求(非200响应)抛出异常