如何在一个python脚本中运行不同的scrapy项目

时间:2016-04-20 17:11:30

标签: python scrapy web-crawler

所有。我是Scrapy的新手,遇到了一些尝试在同一个脚本中调用多个蜘蛛项目的困难。我有三个Scrapy项目,它们分别抓取不同的网页并将数据存储到SQLite中。但我无法弄清楚如何使用一个Python脚本来管理项目。这是我尝试过的:  1.我从使用CrawlerProcess的官方文档中看到,但是这段代码无法通过管道将数据存储到SQLite中。 以下是示例代码:

> bar
    ID Val Geom1 Geom2 Geom3
1.1  1   A   X11   Y11   Z11
1.2  1   A   X12   Y12   Z12
1.3  1   A   X13   Y13   Z13
2.1  2   B   X21   Y21   Z21
2.2  2   B   X22   Y22   Z22
2.3  2   B   X23   Y23   Z23

2.我使用了三个脚本来调用

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

并使用整个脚本导入这三个脚本,但错误如下:

os.system("scrapy crawl myspider")

现在我的问题是,如何在一个python脚本中调用三个不同的项目,而不使用“scrapy crawl XXX”。我真的很困惑。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

Scrapyd用于运行多个蜘蛛项目。但是有一个小问题。必须在命令行中停止蜘蛛项目,而我想在脚本中停止蜘蛛。