当我遇到网站阻塞时,我怎么能暂停一个刮痧呢?

2024-04-26 00:07:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我用scrapy抓取用户页面豆瓣'. 我需要在我的所有用户的网页,我需要在吊坠。在

但问题是,有时网站会阻止我的爬虫程序,如果我立即注意到,我可以手动关闭蜘蛛按Ctrl+C,并重新启动蜘蛛,然后继续。 在模拟这种行为的过程中,我遇到了很多问题,我有两个想法,如下所示:

  1. 把蜘蛛停在里面 检测403页,因为这是被阻止的标志。 在parse函数中添加以下代码:
if response.status == 403:
    reactor.callLater(0, lambda: time.sleep(60))

这是不起作用的,因为睡眠不会导致连接关闭,无论它休眠多长时间,都不会像手动重启蜘蛛一样。在

  1. 拆分start_url并逐个启动spider 因为一个start_url代表一个用户,所以我将这个start_url列表拆分并放在不同的spider中。 然后我通过脚本启动spider(http://doc.scrapy.org/en/0.24/topics/practices.html#run-from-script) 然后我发现扭曲的反应堆无法重启!在

所以,我不知道如何完全暂停,并自动重新启动它。在


Tags: 用户程序url网页网站过程页面手动