2016-03-10 3 views
10

Я новичок в django. Я пытаюсь запустить мой scrapy spider через представление django. Мой код scrapy отлично работает, когда я запускаю командную строку. но когда я пытаюсь запустить его на django, он терпит неудачу. Сообщение об ошибке: сигнал работает только в основном потоке.сигнал работает только в основной теме

мой код в представлении Джанго (Следующий)

from twisted.internet import reactor 
from scrapy.crawler import Crawler 
from scrapy.crawler import CrawlerProcess 
from scrapy import log, signals 
from Working.spiders.workSpider import WorkSpider 
from scrapy.settings import Settings 
from scrapy.utils.project import get_project_settings 

spider = WorkSpider(domain='scrapinghub.com') 
crawler = CrawlerProcess(Settings()) 
crawler.start() 
crawler.signals.connect(reactor.stop, signal=signals.spider_closed) 
crawler.configure() 
crawler.crawl(spider) 
crawler.start() 
log.start() 
reactor.run() 

Пожалуйста, помогите мне решить эту проблему. спасибо

+1

вы смогли решить. Не могли бы вы опубликовать свою работу? –

+0

То же, что и парень выше. – kiradotee

ответ

2

ошибка в основном говорит о том, что вы не в основном потоке, поэтому сигнал не обрабатывается.

переход от CrawlerProcess к CrawlerRunner решить эту проблему для меня (я предполагаю, что в CrawlerRunner вы в основном потоке) http://doc.scrapy.org/en/latest/topics/api.html#scrapy.crawler.CrawlerRunner

надеюсь, что это поможет вам

+0

Я получил эту ошибку, используя CrawlerRunner – kiradotee

Смежные вопросы