文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
14.5 优化措施
以上几节其实已经完成了项目的所有功能,本小节对上面的内容进行部分优化,优化包括登录成功后对Cookie的存储和cookie登录,添加限速功能,防止被发现。
首先要做的是对Cookie的存储,即将Cookie序列化存储到session.txt中,将这段代码放到parse_user_info方法的开始位置。代码如下:
if not os.path.exists('session.txt'): with open('session.txt','wb') as f: import pickle cookies = response.request.headers['cookie'] cookieDict={} for cookie in cookies.split(';'): key,value = cookie[0:cookie.find('=')], cookie[cookie.find('=')+1:] cookieDict[key]=value pickle.dump(cookieDict,f)
首先判断文件是否存在,如果不存在,则从request.headers中提取cookie字符串,并将cookie字符串拆分和组装成字段,最后进行序列化存储。存储完毕后,我们需要在start_requests的起始位置加载Cookie,代码如下:
if os.path.exists('session.txt'): with open('session.txt','rb') as f: import pickle self.cookies = pickle.load(f) self.xsrf = self.cookies['_xsrf'] return [Request( self.start_urls[0], cookies=self.cookies, meta={'cookiejar': 1}, callback=self.parse_user_info, errback=self.parse_err, )]
首先判断session.txt是否存在,然后读取cookeis的值,直接通过Cookies构造Request请求,进入起始url解析阶段。
最后进行以下限速的操作,在Settings中设置如下:
DOWNLOAD_DELAY=2 AUTOTHROTTLE_ENABLED=True AUTOTHROTTLE_START_DELAY=5 AUTOTHROTTLE_MAX_DELAY=60
大家也可以根据自己的情况设置延时。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论