Requests
pip install requests
来安装requests
requests官方doc:各功能模块的简介,叙述清楚,在左栏可以选择chinese版本的doc翻译 。
cookie使用
- 使用requests方法+ cookies参数
引自requests中的官方文档:
To send your own cookies to the server, you can use the cookies parameter:
>>> url = ‘http://httpbin.org/cookies’
>>> cookies = dict(cookies_are=’working’)
>>> r = requests.get(url, cookies=cookies)
>>> r.text
‘{“cookies”: {“cookies_are”: “working”}}’
Cookies are returned in a RequestsCookieJar, which acts like a dict but also offers a more complete interface, suitable for use over multiple domains or paths. Cookie jars can also be passed in to requests:
>>> jar = requests.cookies.RequestsCookieJar()
>>> jar.set(‘tasty_cookie’, ‘yum’, domain=’httpbin.org’, path=’/cookies’)
>>> jar.set(‘gross_cookie’, ‘blech’, domain=’httpbin.org’, path=’/elsewhere’)
>>> url = ‘http://httpbin.org/cookies’
>>> r = requests.get(url, cookies=jar)
>>> r.text
‘{“cookies”: {“tasty_cookie”: “yum”}}’
requests+cookies参数的方法,不能起到cookie持久化的作用,换言之,需要每次请求都带上cookies参数。
- session + cookiejar
使用cookiejar完成cookie的持久化,参考关于requests的session方法保持cookie的问题,注意里边提到cookiejar和字典型cookie的内容,引用如下
用requests的session方法保持cookie的时候发现requests不能保持手动构建的cookie。起初以为requests只能自动保持由服务器返回的set-cookie语句中的cookie。后来查了很多资料,才终于明白。原来requests只能保持 cookiejar 类型的cookie,而我们手动构建的cookie是dict类型的
cookie dict和 cookiejar的互换
cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
cookies = requests.utils.dict_from_cookiejar(r.cookies)