我有一个名为 algorithm.py 的脚本,我希望能够在脚本期间调用 Scrapy spider。文件结构为:
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.')