redis-scrapy 分布式爬虫之缓存问题
来源:4-25 有没有方法可以比较准确的解析出 title 和正文内容
慕粉171731593
2021-05-25
老师您好。我在做爬虫的时候发现redis-scrapy两个问题。
- 在爬虫执行过程中中间结束掉服务后再重新启动。发现重缓存队列中拿到的request没有callback函数。导致在回调过程中出错调试发现回调的函数并不是我指定的回调函数。
- 缓存队列问题。当在执行爬虫过程中。执行没多久后redis就开始拒绝连接。重新启动后又可以短时间内连接到redis。这两个问题网上找了好久答案也没找到解决方案。非常愁人。
因为老师您的视频比较早我看的时候已经找不到对应的版本了。
redis-scrapy
请老师给远程帮忙解决一下。代码和错误信息贴进来就提交不了问题了
写回答
3回答
-
慕粉171731593
提问者
2021-05-30
老师。我目前遇到一个匪夷所思的问题。
我使用的redis-scrapy框架做的分布式爬虫。启动程序后,执行大概30-40分钟后。后面的请求全部都是400了。我只要重启程序后。接着后续缓存的请求执行,就没有问题。我分析的结果是。不是对方网站的问题。而且scrapy框架哪的问题。或者说我没有配置好。具体哪没配好我找不到原因。
022021-06-02 -
慕粉171731593
提问者
2021-05-30
老师。我已经解决了上面的两个问题。首先是我先分享碰到这两个问题的原因。第一关于redis连接失败的问题。首先我的redis是docker容器运行的。我在启动的时候时候设置docker容器保持开启状态。也就是说只要redis的docker挂掉了。他就会重启容器。爬虫确实把redis的docker容器给跑挂了。之后容器自动启动。导致看到的效果就是redis活的。scrapy连不到redis。第二个问题是执行了回调函数。但回调的函数不正确。目前我通过设置SCHEDULER_PERSIST=True后。没遇到过了。
012021-06-01 -
bobby
2021-05-27
不是指定的回调,那被回调到什么函数呢?还是不执行回调函数?
这里的拒绝连接是对应的网站抓取不了还是说连接不到redis了?
00
相似问题