weibo-search icon indicating copy to clipboard operation
weibo-search copied to clipboard

程序自动停止

Open mokeeqian opened this issue 2 years ago • 6 comments

爬取为期一周的数据,仅最后一天(从最后一天开始的)的两百多条就停止了。 停止的机制是什么呢?

mokeeqian avatar Oct 09 '22 06:10 mokeeqian

程序搜索结果不稳定,你可以把时间间隔改成一天。

dataabc avatar Oct 09 '22 12:10 dataabc

程序搜索结果不稳定,你可以把时间间隔改成一天。

试了一下,还是不行,请问有什么解决方案吗?

mokeeqian avatar Oct 09 '22 12:10 mokeeqian

或者修改search.py,目前程序通过“下一页”链接获取微博下一页信息,如果不存在就停止。因为现在有的微博即便存在下一页,但是没有链接,所以程序误判导致停止。可以改成for循环,计算下一页。

dataabc avatar Oct 10 '22 12:10 dataabc

或者修改search.py,目前程序通过“下一页”链接获取微博下一页信息,如果不存在就停止。因为现在有的微博即便存在下一页,但是没有链接,所以程序误判导致停止。可以改成for循环,计算下一页。

通过手动模拟我发现:web搜索页面到某一页之后,就不再显式”下一页“按钮了,即便后面还有数据(通过带上page=?参数,还能取得数据)。

你说的for轮询或许是个办法,我再去看一下应对for的终止条件

mokeeqian avatar Oct 10 '22 12:10 mokeeqian

或者修改search.py,目前程序通过“下一页”链接获取微博下一页信息,如果不存在就停止。因为现在有的微博即便存在下一页,但是没有链接,所以程序误判导致停止。可以改成for循环,计算下一页。

作者你好,我不太懂scrapy。

  • 是search.py文件里所有涉及if next_url: 的地方都需要改动吗还是?
  • yield返回时,如何在函数内判断for循环何时终止呢?

mokeeqian avatar Oct 10 '22 13:10 mokeeqian

1.是的; 2.你的意思是不知道有几页,所以不知道for循环几次吗?可以抓取当前页面的html获得页数,停止。

dataabc avatar Oct 11 '22 12:10 dataabc

我也遇到了与楼主相同的问题,爬取二百多条的时候就停止,换了关键词也不行,两位大佬有推荐的解决办法吗?

JackieLee-cn avatar Jan 16 '23 02:01 JackieLee-cn