Cookies与会话对象
如果某个响应中包含一些Cookie,你可以快速访问它们:
import requests
print(r.cookies['NID'])
print(tuple(r.cookies))
要想发送你的cookies到服务器,可以使用 cookies 参数:
import requests
url='/cookies'cookies={'testCookies_1':'Hello_Python3','testCookies_2':'Hello_Requests'}#在Cookie Version 0中规定空格、方括号、圆括号、等于号、逗号、双引号、斜杠、问号、@,冒号,分号等特殊符号都不能作为Cookie的内容。
r = requests.get(url, cookies=cookies)
print(r.json())
会话对象让你能够跨请求保持某些参数,最方便的是在同一个Session实例发出的所有请求之间保持cookies,且这些都是自动处理的,甚是方便。
下面就来一个真正的实例,如下是快盘签到脚本:
import requests
headers={'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Encoding':'gzip,deflate, compress','Accept-Language':'en-us;q=0.5,en;q=0.3','Cache-Control':'max-age=0','Connection':'keep-alive','User-Agent':'Mozilla/5.0(X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/0101 Firefox/22.0'}
s=requests.Session()
s.headers.update(headers)#s.auth = ('superuser', '123')
_URL='/index.php's.post(_URL,params={'ac':'account','op':'login'},
data={'username':'****@','userpwd':'********','isajax':'yes'})
r= s.get(_URL, params={'ac':'zone','op':'taskdetail'})print(r.json())
s.get(_URL, params={'ac':'common','op':'usersign'})
超时与异常
timeout 仅对连接过程有效,与响应体的下载无关。
requests.get('',timeout=0.001)