如何使用scrapy每晚刮掉数万个网址

mmr*_*151 0 python scrapy scrapy-spider scrapy-pipeline scrapy-splash

我正在使用scrapy刮掉一些大品牌来导入我网站的销售数据.目前我正在使用

DOWNLOAD_DELAY = 1.5

CONCURRENT_REQUESTS_PER_DOMAIN = 16

CONCURRENT_REQUESTS_PER_IP = 16
Run Code Online (Sandbox Code Playgroud)

我使用Item加载器指定css/xpath规则和Pipeline将数据写入csv.我收集的数据是原价,销售价格,颜色,尺寸,名称,图片网址和品牌.

我只为一个拥有大约10万网址的商家写了蜘蛛,这需要我大约4个小时.

我的问题是,对于10k网址,4小时听起来是否正常,或者它应该比这更快.如果是这样,我还需要做些什么来加快速度.

我只在本地使用一个SPLASH实例进行测试.但在生产中我计划使用3个SPLASH实例.

现在主要问题是,我有大约125个商家和每个平均10k产品.他们中的一对有超过150k的网址.

我需要每晚清理所有数据以更新我的网站.由于我的单个蜘蛛花了4个小时来刮掉10k网址,我想知道每晚实现125 x 10k网址是否真的是有效的梦想

我将非常感谢您对我的问题的经验输入.

cha*_*ani 5

您的DOWNLOAD_DELAY是按IP强制执行的,因此如果只有1个IP,那么10,000个请求将需要15000秒(10,000*1.5).那只是4个多小时.所以是的,这是正确的.

如果您正在抓取多个站点,那么它们将是不同的IP地址,因此它们应该或多或少地并行运行,因此仍然需要4个小时左右.

如果你要抓125个网站,那么你可能会在某个时候遇到不同的瓶颈.