爬虫突破登录壁垒-2:使用cookies
2018-02-05 11:21
169 查看
@通过cookies突破登录壁垒
在《壁垒-1》中我们模拟用户名、密码、验证码的方式实现了登录
在其抓包的过程中,我们发现服务端是给我们返回了cookies的,cookies的作用即在于记录用户信息
我们直接把登陆成功后的cookies拿来丢在请求头里,其效果和我们使用用户名密码登录是完全一致的
@将cookies重构为字典,并添加到会话对象中
@直接使用cookies免登陆发送业务请求
@完整代码
在《壁垒-1》中我们模拟用户名、密码、验证码的方式实现了登录
在其抓包的过程中,我们发现服务端是给我们返回了cookies的,cookies的作用即在于记录用户信息
我们直接把登陆成功后的cookies拿来丢在请求头里,其效果和我们使用用户名密码登录是完全一致的
@将cookies重构为字典,并添加到会话对象中
# 在浏览器中登录,抓包获取的cookies,我们直接拿来丢在请求头,其效果和实际登录是完全一致的 cookies_info = { 'ASP.NET_SessionId' : 'bcsgvys4lif3ckn2ntgi2fee', '__qc_wId' : '928', 'pgv_pvid' : '1193279241', 'Hm_lvt_04660099568f561a75456483228a9516' : '1514357387', '__qc__k' : '', 'codeyzgswso' : '390de3471712da5f', 'Hm_lpvt_04660099568f561a75456483228a9516' : '1514360366', 'gswEmail' : '1090509990%40qq.com', 'gsw2017user' : '167606%7c6A5471B38CFFFF27880E4F7E9679CF7A', 'idsShiwen2017' : '%2c8150%2c49386%2c7722%2c', } sess = requests.session() # 将 cookies 信息加入会话中 for k, v in cookies_info.items(): sess.cookies[k] = v # print(sess.cookies) # print(type(sess.cookies))
@直接使用cookies免登陆发送业务请求
# cookies免登陆发起业务请求 response = sess.get(url='http://so.gushiwen.org/user/collect.aspx', headers=headers_3) print(response.text)
@完整代码
headers_3 = { 'Host': 'so.gushiwen.org', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Referer': 'http://so.gushiwen.org/user/collect.aspx', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', } # 在浏览器中登录,抓包获取的cookies,我们直接拿来丢在请求头,其效果和实际登录是完全一致的 cookies_info = { 'ASP.NET_SessionId': 'bcsgvys4lif3ckn2ntgi2fee', '__qc_wId': '928', 'pgv_pvid': '1193279241', 'Hm_lvt_04660099568f561a75456483228a9516': '1514357387', '__qc__k': '', 'codeyzgswso': '390de3471712da5f', 'Hm_lpvt_04660099568f561a75456483228a9516': '1514360366', 'gswEmail': '1090509990%40qq.com', 'gsw2017user': '167606%7c6A5471B38CFFFF27880E4F7E9679CF7A', 'idsShiwen2017': '%2c8150%2c49386%2c7722%2c', } # 将 cookies 信息加入会话中 sess = requests.session() for k, v in cookies_info.items(): sess.cookies[k] = v # print(sess.cookies) # print(type(sess.cookies)) # cookies免登陆发起业务请求 response = sess.get(url='http://so.gushiwen.org/user/collect.aspx', headers=headers_3) print(response.text)
相关文章推荐
- 爬虫突破登录壁垒-1
- Python3爬虫之五网页下载器的几种方法【Python使用cookie模拟登录CSDN】
- 使用httpclient模拟登录(Cookies使用)
- php使用p3p实现cookies跨域设置 实现单点登录,全站登录
- Python爬虫使用脚本登录Github并查看信息
- 接口测试入门(3)--使用httpClient进行登录用例操作/set-cookies验证/ List<NameValuePair>设置post参数/json解析
- Scrapy爬虫框架学习之使用start_requests函数实现用户登录
- ASP.NET使用Cookies保存登录信息
- python爬虫使用cookie登录详解
- 使用爬虫来模拟smart qq的登录,能使用你的java来开发一款聊天机器人哦,cool!
- python人人语音爬虫(登陆尚未完成,需要使用先登录在查cookie中的t)
- scrapy爬虫实战(四)--------------登陆51job并使用cookies进行爬取
- 【python爬虫03】使用Scrapy框架模拟登录知乎
- java使用cookies保存用户登录信息
- 8-使用爬虫登录后台系统并爬取数据
- asp.net使用cookies记录登录状态
- Python爬虫入门:Urllib库使用详解(模拟CSDN登录)
- div隐藏层登录框及使用ajax写入cookies心得
- 爬虫知识6:自动登录与cookies的应用
- Python爬虫学习——使用Cookie登录新浪微博