Scrapy将两个蜘蛛放在单个文件中
问题内容:
我在单个文件中写了两个蜘蛛。当我跑步时scrapy runspider two_spiders.py
,只有第一个Spider被执行。如何在不将文件拆分为两个文件的情况下运行它们。
two_spiders.py:
import scrapy
class MySpider1(scrapy.Spider):
# first spider definition
...
class MySpider2(scrapy.Spider):
# second spider definition
...
问题答案:
让我们阅读文档:
在同一进程中运行多个蜘蛛
默认情况下,当您运行时,Scrapy会为每个进程运行一个蜘蛛
scrapy crawl
。但是,Scrapy支持使用内部API在每个进程中运行多个蜘蛛。这是一个同时运行多个蜘蛛的示例:
import scrapy
from scrapy.crawler import CrawlerProcess
class MySpider1(scrapy.Spider):
# Your first spider definition
...
class MySpider2(scrapy.Spider):
# Your second spider definition
...
process = CrawlerProcess()
process.crawl(MySpider1)
process.crawl(MySpider2)
process.start() # the script will block here until all crawling jobs are finished
(文档中没有更多示例)
从您的问题还不清楚您如何将两个蜘蛛放在一个文件中。仅用单个蜘蛛连接两个文件的内容是不够的。
尝试执行文档中写的内容。或者至少向我们显示您的代码。没有它,我们将无法为您提供帮助。