python爬虫判断cookie过期_当爬虫遇到cookie失效,怎样处理?
之前使用爬虫时,最让我头疼的就是cookie失效的问题了。由于有的cookie存在时效问题。一段时间后,cookies会失效。失效后,爬虫碰到的页面就基本上是重新登录的页面了。这时候就需要cookie自动的更新了。通常怎样自动更新cookie呢?这里会用到selenium。
步骤1、 采用selenium自动登录获取cookie,保存到文件;
步骤2、 读取cookie,比较cookie的有效期,若过期则再次执行步骤1;
步骤3、 在请求其他网页时,填入cookie,实现登录状态的保持。
经过百度,google,加上自己的一些探索,探索出了模拟自动获取淘宝cookies。
import os
import pickle
import time
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium import webdriver
def get_cookie_from_network():
# 这个url比较关键,网络上比较老的办法是
# url_login = 'https://login.taobao.com/member/login.jhtml'
# 测试之后发现,会报错“可能不是一个可交互的element”
# 在后面添加?style=mini后就可以了
url_login = 'https://login.taobao.com/member/login.jhtml?style=mini'
# 这一段是为了给selenium添加user-agent。模拟浏览器
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0 ")
driver = webdriver.PhantomJS(desired_capabilities=dcap)
driver.implicitly_wait(1)
driver.get(url_login)
# driver.find_element_by_id("J_Static2Quick").click()
driver.find_element_by_id("TPL_username_1").clear()
driver.find_element_by_id("TPL_password_1").clear()
driver.find_element_by_id('TPL_username_1').send_keys(u'张小呆920318')
driver.find_element_by_id('TPL_password_1').send_keys('plus820828')
driver.find_element_by_id('J_SubmitStatic').click()
# 获得 cookie信息
cookie_list = driver.get_cookies()
print cookie_list
cookie_dict = {}
for cookie in cookie_list:
#写入文件
f = open('cookies/' + cookie['name']+'.taobao','w')
pickle.dump(cookie, f)
f.close()
if cookie.has_key('name') and cookie.has_key('value'):
cookie_dict[cookie['name']] = cookie['value']
return cookie_dict
将获取的cookies存储在文件中。后期,你可以把它封装成一个函数放在爬虫的__init__中,也可以利用linux的crontab来定时获取最新的cookies值。
python爬虫判断cookie过期_当爬虫遇到cookie失效,怎样处理?相关推荐
- python分布式爬虫及数据存储_分布式爬虫
爬虫学习使用指南 Auth: 王海飞 Data:2018-07-05 Email:779598160@qq.com github:https://github.com/coco369/knowledg ...
- 爬虫取中间文本_小小爬虫批量抓取微信推文里的图片
哈喽,大家好,今天给大家分享一个特别特别小的爬虫案例! 爬取微信推文中的图片!!!! 有人说,这有啥用,,,,万一人家推文是放的是以图片的方式放的某个PPT的内容呢,你想把它弄下来,咋整,就是爬取啦. ...
- java如何判断token过期_【Java】后台判断token过期,后台刷新token,接下来该如何处理...
如标题所示 我再详细描述一下我遇到的问题,如果我再发送请求的试试,后台验证header中的token,如果这时候,发现token过期,然后一系列判断其为合法token,允许token刷新,后台主动刷新 ...
- python中判断列表数据类型_浅谈Python数据类型判断及列表脚本操作
数据类型判断 在python(版本3.0以上)使用变量,并进行值比较时.有时候会出现以下错误: TypeError: unorderable types: NoneType() < int() ...
- 【cookie】设置cookie过期时间 超时时间,Cookie 设置 expires
Cookie是什么: 简单地说,cookie 就是浏览器储存在用户电脑上的一小段文本文件.cookie 是纯文本格式,不包含任何可执行的代码.一个 Web 页面或服务器告知浏览器按照一定规范来储存这些 ...
- 爬虫cookie过期_【Python】Scrapy爬虫框架之Request和Response
说明 Scrapy的Request和Response对象用于爬取网站. HTTP是无状态的面向连接的协议, 为了保持连接状态, 引入了Cookie机制 Cookie是http消息头中的一种属性,包括: ...
- 爬虫cookie过期_python instagram 爬虫
叶湘伦:[文字篇]如何系统地自学 Python?zhuanlan.zhihu.com 直接介绍一下具体的步骤以及注意点: instagram 爬虫注意点 instagram 的首页数据是 服务端渲染 ...
- python爬虫去哪儿网_大型爬虫案例:爬取去哪儿网
世界那么大,我想去看看.相信每到暑假期间,就会有很多人都想去旅游.但是去哪里玩,没有攻略这又是个问题.这次作者给大家带来的是爬取去哪网自由行数据.先来讲解一下大概思路,我们去一个城市旅行必定有一个出发 ...
- python爬虫结果是字节_入门爬虫?一文搞定!
为了感谢大家对"Python客栈"的关注与支持,我们每天会在留言中随机抽取三位粉丝发放6.6元小红包.快来参与吧! 文章分三个个部分 两个爬虫库requests和selenium如 ...
最新文章
- php数据库html文本,关于php,mysql,html的数字分页和文本_php
- K3s初探:Rancher架构师带你尝鲜史上最轻量Kubernetes发行版
- C语言求最大公约数GCD的算法(附完整源码)
- HDU 1175 连连看
- 用ASP.NET Core MVC 和 EF Core 构建Web应用 (一)
- 【飞鸽传书3.0】飞鸽传书3.0关键字布局
- 码农30岁后的体检——你最需要的是直面的勇气
- MySQL的Limit性能问题
- Java 并发(JUC 包-02)
- java嵌套类中的方法怎么调用_java类与嵌套嵌套后,怎么使用最外层的类建立对象后使用内部类的方法?...
- ccd视觉定位教程_CCD与CMOS哪个更能推动工业相机市场的发展
- nginx常用的请求过滤
- 远程心电监护系统在现代医疗中的应用
- 需求分析模板_如何进行培训需求分析?
- 谷歌统计Google Analytics使用入门
- 深度揭秘阿里云函数计算异步任务能力
- 【MySQL】联合索引的使用
- 【通信原理】学习笔记----理解信道
- Oracle数据库建表 Oracle数据库的统一命名与编码规范
- ssm+vue学生网络作业管理系统java maven
热门文章
- 劝雷军别造车?王传福:别浪费钱和时间;华为面向全球招募天才少年:不限学历/学校;腾讯光子工作室强制不加班双休|极客头条...
- 零拷贝技术在 Java 中为何这么牛?
- 教你如何用 Python 三行代码做动图!
- 10 年前的我 VS 10 年后的我
- 毕业后想拿大厂offer?你得完整拥有这些计算机知识体系!
- 两万字长文读懂 Java 集合!
- 再见,Navicat!这个 IDEA 的兄弟,真香!
- FPGA 无解漏洞 “StarBleed”轰动一时,今天来扒一下技术细节!
- 全球呼吸机告急!医疗科技巨头美敦力“开源”设计图和源代码
- 斯坦福首位华人女院长,“人造皮肤”赋予机器和残疾人触觉