title: Scrapy - Reactor not Restartable
body: <p>with:</p>
  
  <pre><code>from twisted.internet import reactor
  from scrapy.crawler import CrawlerProcess
  </code></pre>
  
  <p>I've always ran this process sucessfully:</p>
  
  <pre><code>process = CrawlerProcess(get_project_settings())
  process.crawl(*args)
  # the script will block here until the crawling is finished
  process.start() 
  </code></pre>
  
  <p>but since I've moved this code into a <code>web_crawler(self)</code> function, like so:</p>
  
  <pre><code>def web_crawler(self):
      # set up a crawler
      process = CrawlerProcess(get_project_settings())
      process.crawl(*args)
      # the script will block here until the crawling is finished
      process.start() 
  
      # (...)
  
      return (result1, result2) 
  </code></pre>
  
  <p>and started calling the method using class instantiation, like:</p>
  
  <pre><code>def __call__(self):
      results1 = test.web_crawler()[1]
      results2 = test.web_crawler()[0]
  </code></pre>
  
  <p>and running:</p>
  
  <pre><code>test()
  </code></pre>
  
  <p>I am getting the following error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "test.py", line 573, in &lt;module&gt;
      print (test())
    File "test.py", line 530, in __call__
      artists = test.web_crawler()
    File "test.py", line 438, in web_crawler
      process.start() 
    File "/Library/Python/2.7/site-packages/scrapy/crawler.py", line 280, in start
      reactor.run(installSignalHandlers=False)  # blocking call
    File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 1194, in run
      self.startRunning(installSignalHandlers=installSignalHandlers)
    File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 1174, in startRunning
      ReactorBase.startRunning(self)
    File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 684, in startRunning
      raise error.ReactorNotRestartable()
  twisted.internet.error.ReactorNotRestartable
  </code></pre>
  
  <p>what is wrong?</p>