爬虫中cookie的处理方式(两种方式):
-
手动处理:将抓包工具中的cookie赋值到headers中即可
- 缺点:
- 编写麻烦
- cookie通常都会存在有效时长
- cookie中可能会存在实时变化的局部数据
- 缺点:
-
自动处理 (重点)
- 基于session对象实现自动处理cookie。
注意:session对象至少需要发起两次请求
- 第一次请求的目的是为了捕获存储cookie到session对象
- 后次的请求,就是携带cookie发起的请求了
import requests
from lxml import etree
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
}
login_url = 'https://passport.17k.com/ck/user/login'
data = {
"loginName": "150xxxxxxxxx",
"password": "xxxxxxxxx"
}
session = requests.Session()
#请求的目的是为了获取cookie将其保存到session对象中
session.post(url=login_url,headers=headers,data=data)
#携带cookie向书架的页面进行请求发送,获取书架信息
#书架中的数据是动态加载的数据
book_url = 'https://user.17k.com/ck/author2/shelf?page=1&appKey=2406394919'
page_text = session.get(url=book_url,headers=headers).json()
#解析书架信息
print(page_text)