title: How to call particular Scrapy spiders from another Python script
body: <p>I have a script called algorithm.py and I want to be able to call Scrapy spiders during the script. The file scructure is:</p>
  
  <p>algorithm.py
  MySpiders/ </p>
  
  <p>where MySpiders is a folder containing several scrapy projects. I would like to create methods perform_spider1(), perform_spider2()... which I can call in algorithm.py.</p>
  
  <p>How do I construct this method?</p>
  
  <p>I have managed to call one spider using the following code, however, it's not a method and it only works for one spider. I'm a beginner in need of help!</p>
  
  <pre><code>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.')
  </code></pre>