Scrapy 将两个蜘蛛放在一个文件中

gzc*_*gzc 3 python 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
    ...
Run Code Online (Sandbox Code Playgroud)

Ily*_*lya 5

让我们阅读文档

在同一个进程中运行多个蜘蛛

默认情况下,当您运行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
Run Code Online (Sandbox Code Playgroud)

(文档中还有几个例子)

从您的问题来看,不清楚您是如何将两个蜘蛛放入一个文件中的。用单个蜘蛛连接两个文件的内容是不够的。

尝试执行文档中所写的操作。或者至少向我们展示您的代码。没有它我们帮不了你。