Python requests之Cookie
视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium
在某些需要登录的网站或者或者应用,假如我们需要抓取登录后的内容,技术上本质通过session会话实现。服务器端存会话信息,浏览器通过Cookie携带客户端访问用户信息,来实现会话机制。
requests对Cookie有很好的支持。
我们看一个实例。
http://download.java1234.com/
这个网站,假如需要看抓取登录后的用户下载的资源信息
http://download.java1234.com/user/userDownload/list/1
这时候的思路是先post方式登录系统,获取返回的cookie,然后我们带上cookie再请求用户下载资源信息url。
参考代码:
import requests
url = "http://download.java1234.com/user/login"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'
}
data = {
'userName': 'python222',
'password': '123456'
}
r = requests.post(url=url, data=data, headers=headers)
print(r.text)
print(r.headers)
cookieJar = r.cookies
for c in cookieJar:
print(c.name, c.value)
targetUrl = "http://download.java1234.com/user/userDownload/list/1"
r2 = requests.get(url=targetUrl, headers=headers, cookies=cookieJar)
print(r2.text)