cookies失效重载问题
来源:4-25 有没有方法可以比较准确的解析出 title 和正文内容
慕瓜6579165
2021-11-17
bobby老师,你好。
我有一个脚本一直都运行良好的,近段时间网站调整的Cookie策略,Cookie一天后就失效,需要重载Cookie,问题我爬的数据是直接读库的KEY,如果整个重启,那所有KEY都会重新爬过,这样我没办法有效遍历一次数据库。现在想到的办法是出现登录失效后,重新用selenium登录账号,获取Cookie。问题来了,无论怎么调用加载,Cookie都放不进去原来正在运行的框架脚本中,不能有效覆盖掉失效的Cookie
尝试过方法:
1、直接在类中写全局变量
报错后重新获取,将Cookie赋值到全局变量cookie_dict中,cookie然后通过yield调用,
yield Request(url = parse.urljoin(response.url, post_url), cookies = self.cookie_dict, callback = self.parse_detail)
由于并发问题,第一个链接是登录获取到的,然后的链接都会卡壳的情况,感觉是异步的问题,全局变量不能有效赋值
2、修改middleware中间件的cookie
我这边本来已经调用 def start_requests(self)方法,第一次Cookie就是在这里继承出去,查看了其他同学的问题,是比middleware优先级别的
3、现在请教下,有没有比较简单直白的Cookie加载方法,能在Cookie失效后重新赋值正确Cookie上去,因为scrapy框架时候异步的,调试都不好调试,然后cookie失效又是隔天才失效,这问题折磨了我几天了,希望能得到您的答疑,先谢谢了。
1回答
-
bobby
2021-11-18
抓取cookie的项目重新开一个scrapy项目专门抓取cookie,不过最好的是使用自己多线程获取,没有必要使用scrapy, 这个线程定时扫描那些已经超时的cookie然后去获取就行了,每次更新cookie以后记得记录一下更新的时间就行了
022021-11-23
相似问题