我正在使用scrapy刮取一些大品牌来导入我的网站的销售数据。目前我正在使用
DOWNLOAD_DELAY = 1.5
CONCURRENT_REQUESTS_PER_DOMAIN = 16
CONCURRENT_REQUESTS_PER_IP = 16
我使用项目加载器来指定css/xpath规则,并使用管道将数据写入csv。我收集的数据是原价,售价,颜色,尺寸,名称,图片网址和品牌。
我只为一个拥有大约1万个URL的商家写了蜘蛛,这花了我大约4个小时。
我的问题是,对于10k个url来说,4个小时听起来不错吗?还是应该更快。如果是这样,我还需要做些什么来加快速度。
我在本地只使用一个SPLASH实例进行测试。但在生产中,我计划使用3个SPLASH实例。
现在主要的问题是,我有大约125个商家,每个商家平均有1万个产品。他们中的几个有超过15万个url需要抓取。
我需要每天晚上收集他们所有的数据来更新我的网站。由于我的一只蜘蛛需要4个小时才能刮到10k个URL,我想知道每晚实现125 x 10k个URL是否是一个有效的梦想
我将非常感谢你对我的问题有经验的意见。
您的DOWNLOAD_DELAY是按每个IP强制执行的,因此如果只有1个IP,那么10000个请求将需要15000秒(10000*1.5)。这仅需要4个多小时。所以,是的,这是正确的。
如果你正在抓取多个站点,那么它们将是不同的IP地址,因此它们应该或多或少并行运行,因此仍然需要4个小时左右
如果你正在抓取125个站点,那么你可能会在某个时候遇到不同的瓶颈。