采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好。我在做爬虫的时候发现redis-scrapy两个问题。
因为老师您的视频比较早我看的时候已经找不到对应的版本了。redis-scrapy 请老师给远程帮忙解决一下。代码和错误信息贴进来就提交不了问题了
老师。我目前遇到一个匪夷所思的问题。
我使用的redis-scrapy框架做的分布式爬虫。启动程序后,执行大概30-40分钟后。后面的请求全部都是400了。我只要重启程序后。接着后续缓存的请求执行,就没有问题。我分析的结果是。不是对方网站的问题。而且scrapy框架哪的问题。或者说我没有配置好。具体哪没配好我找不到原因。
一般原因都是对方网站的问题,你抓取的是什么网站?你有没有试过控制爬取的速度,看看是不是运行的时间会更长一些
起初我也是这么想的。控制时间都设置过。3,5秒都尝试过。并且我还用了代理。。。起初我也是想是不是对方网站把我禁掉了。从开始一直400后,我只是重启一下就可以访问。这证明对方并没有禁我。所以这是我想不明白的地方。
老师。我已经解决了上面的两个问题。首先是我先分享碰到这两个问题的原因。第一关于redis连接失败的问题。首先我的redis是docker容器运行的。我在启动的时候时候设置docker容器保持开启状态。也就是说只要redis的docker挂掉了。他就会重启容器。爬虫确实把redis的docker容器给跑挂了。之后容器自动启动。导致看到的效果就是redis活的。scrapy连不到redis。第二个问题是执行了回调函数。但回调的函数不正确。目前我通过设置SCHEDULER_PERSIST=True后。没遇到过了。
非常好的踩坑经验,分享给有需要的同学,特别是SCHEDULER_PERSIST=True的设置。不过建议再去深入的看一下SCHEDULER_PERSIST=True相关的源码,看看实现原理是什么
不是指定的回调,那被回调到什么函数呢?还是不执行回调函数?
这里的拒绝连接是对应的网站抓取不了还是说连接不到redis了?
登录后可查看更多问答,登录/注册
带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎
4.7k 30
2.5k 18
1.1k 18
1.3k 15
2.7k 15