Scrapy 运行多个进程的刮擦蜘蛛

Scrapy 运行多个进程的刮擦蜘蛛,scrapy,scrapy-spider,Scrapy,Scrapy Spider,我有一个Scrapy项目,它从数据库中读取100万个产品ID,然后开始根据网站上的ID删除产品详细信息 我的蜘蛛正在全力工作 我想运行10个Spider实例,每个实例都分配了相同数量的产品ID 我可以这样做 从产品标识中选择COUNT(*),然后将其除以10,然后执行 从产品ID限制0、N中选择*等 我有一个想法,我可以在终端中通过在scrapy命令中传递LIMIT,比如scrapy crawl my_spider scrape=1000等等 但我想在Spider中执行此操作,所以我只运行了一次

我有一个Scrapy项目,它从数据库中读取100万个产品ID,然后开始根据网站上的ID删除产品详细信息

我的蜘蛛正在全力工作

我想运行10个Spider实例,每个实例都分配了相同数量的产品ID

我可以这样做

从产品标识中选择COUNT(*),然后将其除以10,然后执行

从产品ID限制0、N中选择*等

我有一个想法,我可以在终端中通过在scrapy命令中传递
LIMIT
,比如
scrapy crawl my_spider scrape=1000
等等


但我想在Spider中执行此操作,所以我只运行了一次Spider,然后它在Spider中运行了10个相同Spider的进程。

一种方法是使用CrawlerProcess帮助类或CrawlerRunner

import scrapy
from scrapy.crawler import CrawlerProcess

class Spider1(scrapy.Spider):
   # Your first spider definition

process = CrawlerProcess()
process.crawl(Spider1)
process.crawl(Spider1)
process.start() 

它在同一进程中运行多个spider,而不是多个进程。

在我看来,这种逻辑应该在scrapy spider之外。通常的做法是简单地将bash脚本写入unix
split
a包含URL的文件,然后逐个迭代这些文件,每次启动一个scrapy spider,其参数为该文件:
scrapy crawl-a file=xab
我擅长PHP,因此我可以为此编写一个PHP脚本……)好建议