Django 用户认证 用户 邮箱登录 邮箱注册 ORM or,and,not form.py FORM ModelForm Paginator 分页 HTMl JQuery 定位元素 ajax django切片 restfulapi 跨域 Ubantu Python Mysql Scrapy 爬虫 导出 Python读写 Pycharm 破解 session re sqlit3 生成式 其他 Prism 富文本 CSS Nginx 部署 请求头 抓包 协议 selenium Ubuntu 宝塔 AI Comfy-ui ollama dify open-webui Git docker 远程
requests模块的cookie信息自动追踪与管理
张建行 2020年12月9日 19:50 86 文章标签: Python 爬虫

# requests这个模块,如果直接利用get()或者post等方法可以做到模拟网页的请求,但是每一次请求之间是没有关系的,相当于不同的会话,也就是相当于用浏览器打开了两个不同的页面。
# 设想这样一个场景:第一次请求利用post()方法登陆了某个网站,第二次想获取成功登陆之后的个人信息,又用了一次get()方法去请求个人信息页面。实际上相当于打开了两个浏览器,是完全不关的两个会话,这样并不能成功获取个人信息。
# 解决方案:维持同一个会话,也就是相当于使用同一个浏览器打开不同的页面,而不是每次都要重新设置cookie。这时候就有了session对象
import requests

# 请求http://httpbin.org/cookies/set/number/123456789设置cookie信息,名称是number,内容是123456789,接着在请求http://httpbin.org/cookies,这个网址可以获取当前的cookies
requests.get("http://httpbin.org/cookies/set/number/123456789")
r = requests.get("http://httpbin.org/cookies")
print(r.text)

session_obj = requests.Session()
session_obj.get("http://httpbin.org/cookies/set/number/123456789")
r = session_obj.get("http://httpbin.org/cookies")
print(r.text)