我有一个脚本设置如下:
try:
from Xinhua import Xinhua
except:
error_message("Xinhua")
try:
from China_Daily import China_Daily
except:
error_message("China Daily")
try:
from Global_Times import Global_Times
except:
error_message("Global Times")
try:
from Peoples_Daily import Peoples_Daily
except:
error_message("People's Daily")
其目的是为每个站点运行Scrapy爬网程序,处理结果,并将结果上传到数据库。当我单独运行每个脚本时,每个部分都工作正常。然而,当我从我概述的代码块运行时,只有 * 第一个 * Scrapy爬行器实际上工作正常。所有后续的爬行器都试图访问它们应该访问的站点,但没有返回任何结果。我不知道我甚至没有得到正确的错误信息,只有一些“调试... 200无”和“[scrapy.crawler]信息:覆写的设定:{}”行。我也不认为问题是我的IP或任何东西被屏蔽;一旦爬虫失败,我立即单独启动它们,它们工作得很好。
我猜第一个爬虫留下了一些设置,干扰了后面的爬虫,但我没有找到任何东西。我可以重新安排它们的执行顺序,当其他爬虫失败时,总是第一个爬虫工作。
有什么想法吗?
1条答案
按热度按时间vvppvyoh1#
我通过将每个Crawler合并到一个脚本中并使用CrawlerProcess运行它们来修复这个问题。