现在在爬取一个信息公示页面,领导想吧导航信息放进去,但是这个异步高并发导致导航数据迭代之后上一个导航的页面还没完成请求。使得导航数据和页面数据不匹配。
有没有办法请求列表页之后等所有详情页请求完之后在进行下一个列表页的请求。
不会啊,传参+回调函数,不会导致数据流错乱的。
回调函数只是处理上一层调用回调函数的时传入的参数/url
代码逻辑出问题了,scrapy虽然是异步处理,但是执行上还是通过一层一层的函数回调来的。正常不会出现这种情况。
我用的scrapy_redis,设置了请求队列,可是数据库看不到,配置改了,继承类也改了,,刚开始好好的,改着改着,请求队列没了。爬虫文件中只有两个函数。start_requests(self):和parse(self, response):。在start_requests(self):中做循环然后yield 回调parse。其中有操作redis记录URL,请求加了参数dont_filter=True,没走去重,没有用redisITEM,现在请求队列也没了。我已经不知道我是不是还是异步并发了。