如何从另一个Python脚本调用特定的Scrapy蜘蛛

Dav*_*ley 6 python scrapy

我有一个名为algorithm.py的脚本,我希望能够在脚本中调用Scrapy蜘蛛.文件结构是:

algorithm.py MySpiders/

MySpiders是一个包含几个scrapy项目的文件夹.我想创建方法perform_spider1(),perform_spider2()...我可以在algorithm.py中调用它.

我该如何构建这个方法?

我已经设法使用以下代码调用一个蜘蛛,但是,它不是一种方法,它只适用于一个蜘蛛.我是初学者,需要帮助!

import sys,os.path
sys.path.append('path to spider1/spider1')
from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy.settings import Settings
from scrapy import log, signals
from scrapy.xlib.pydispatch import dispatcher
from spider1.spiders.spider1_spider import Spider1Spider

def stop_reactor():
    reactor.stop()

dispatcher.connect(stop_reactor, signal=signals.spider_closed)

spider = RaListSpider()
crawler = Crawler(Settings())
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
log.msg('Running reactor...')
reactor.run() # the script will block here
log.msg('Reactor stopped.')
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 5

只需通过你的蜘蛛通过呼叫设置它们configure,crawl然后start,然后再打电话log.start()reactor.run().scrapy将在同一过程中运行多个蜘蛛.

有关更多信息,请参阅文档此主题.

另外,考虑通过报废运行你的蜘蛛.

希望有所帮助.