requests请求响应相关参数

请求库requests

1. Get请求相关参数

import requests

url = 'http://httpbin.org/get?name=bob'   # 请求url,?后面拼接的是参数

params = {'name': 'nick','age': '18'}	# 参数,与url上的参数同时存在,没有优先级,若key相同,则值以列表形式存在

cookies = {'xxx': 'xxx','yyy': 'yyy'}  # cookie值,若headers中有cookie,则使用headers中的cookie

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36",  # 若未设置User-Agent,则会检测为python请求
    "Cookie": 'aaa=aaa;bbb=bbb'
}

proxies = {'http':'http://ip:端口'}  # 代理地址,固定的格式,如果是https就用https

timeout = 0.5  # 设置超时时间,若请求超出时间则报错

allow_redirects = True  # 重定向中使用,是否允许跳转

res = requests.get(url=url,headers=headers,params=params,cookies=cookies)
print(res.text)

2. Post请求相关参数

import requests

url = 'http://httpbin.org/post'  # 请求url
data = {
    'name': 'nick',  # form数据
    'age': '18',
}
json = {"sex":'man'}  # json格式数据,如果有data时,json为null
files = {'file':open('a.txt','rt',encoding='utf8')}  # 文件数据
cookies = {
    'xxx': 'xxx',
    'yyy': 'yyy'
}
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36",
    "Cookie": 'aaa=aaa;bbb=bbb'
}
timeout = 0.5  # 超时时间
allow_redirects = True  # 是否允许重定向
res = requests.post(url=url, headers=headers, data=data,cookies=cookies,json=json,files=files)
print(res.text)

3. request请求

import requests
requests.request(method,url,**kwargs)  # method为请求方式,url请求地址。get,post请求本质上是继承了request请求

4. 响应相关参数

import requests
r = requests.get(....)

r.url  # 请求的url

r.text  # 获得响应体文本信息

r.encoding = 'gbk'  # 设置编码方式,用来解决乱码

r.content  # 二进制信息

r.json  # 相当于json.loads(r.text),若返回的不是json数据,会报错

r.status_code  # 响应状态码

r.headers  # 响应头

r.cookies  # 拿cookie

r.history  # 有重定向时,取到的是 [响应对象1,响应对象2...]

5. 自动保存cookie的请求

session = requests.session()   
r = session.get(...)  # 会将cookie保存在seesion中,发次发请求时会带上cookie

# 补充(保存cookie到本地)
import http.cookiejar as cookiejar
import requests
session = requests.session()
session.cookies = cookiejar.LWPCookieJar()

session.cookies.load(filename='cookie.txt')  # 取cookie

res = session.get('http://www.baidu.com')
session.cookies.save(filename='cookie.txt')  # 存cookie
posted @ 2019-10-17 17:20  Never&say&die  阅读(741)  评论(0编辑  收藏  举报