pyspider 每次重试的时候,是不是用的第一次爬取的信息。比如代理,无论retry多少次都是一个代理。
用pyspider写爬虫,发现只要出现错误之后,所有的错误重试都不能够成功。猜测是因为每次重试都用的同一个代理。
代码部分如下
def on_start(self):
self.crawl(
'http://he.gsxt.gov.cn/notice/search/ent_announce_unit?announceType=0101&keyword=&pageNo={}&organ='.format(
1), callback=self.index_page, proxy=hc_proxy(),save={'page':1},headers=self.crawl_config['headers'],connect_timeout=60)
每次通过一个方法调用代理,给crawl进行爬取
最后的结果就变成这样了
对了我的代理情况是只能用一分钟,一分钟就失效了。
请教到底什么情况造成这样,自己去翻了源码,不过水平有限找不到。
试过其他的代理,用那种squid之类的代理(就是我只需要连接一个服务器,这个服务器帮我分发代理),这种模式可以。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
pyspider 不打算实现代理管理,即使我要实现也会新建别的项目。
目前用 squid 就挺好,例如下面就是一个使用 squid 分发 http 代理的配置例子:
peers.conf 可以这样生成
定时更新 peers.conf 然后 service squid reload 就好了