Python爬蟲之requests庫(五):Cookie、超時、重定向和請求歷史
阿新 • • 發佈:2019-02-05
import requests
一、Cookie
獲取伺服器響應中的cookie資訊
url = 'http://example.com/some/cookie/setting/url'
r = requests.get(url)
r.cookies['example_cookie_name']
使用引數cookies,傳送cookie到伺服器
url = 'http://httpbin.org/cookies'
cookies = dict(cookies_are='working')
r = requests.get(url, cookies=cookies)
r.text
'{"cookies":{"cookies_are":"working"}}\n'
cookie的返回物件其實是RequestsCookieJar,它與字典型別,可以直接將RequestsCookieJar傳遞給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)
二、超時
通過設定引數timeout,決定停止等待響應的時間
requests.get('http://github.com', timeout=60)
<Response [200]>
三、重定向和請求歷史
- 通常requests會自動處理重定向
- 通過.history可以追蹤重定向的過程
- github會將http請求重定向到https
r = requests.get('http://github.com')
print(r.url)
print(r.status_code)
print(r.history)
https://github.com/ 200 [<Response [301]>]
- 通過引數allow_redirects禁用重定向
r = requests.get('http://github.com', allow_redirects=False)
print(r.status_code)
print(r.history)
301
[]