【发布时间】:2016-03-10 10:43:14
【问题描述】:
我是 django 的新手。我正在尝试通过 django 视图运行我的爬虫蜘蛛。当我通过命令提示符运行时,我的 scrapy 代码运行良好。但是当我尝试在 django 上运行它时它失败了。 错误信息:信号仅在主线程中有效。
我在 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()
请帮我解决这个问题。谢谢
【问题讨论】:
-
你能解决它吗?能否请您发布您的工作?
-
和上面那个人一样。 ????
-
有同样的问题,但使用 pypetter
-
有人吗? CrawlerRunner 看起来级别较低,我更喜欢 CrawlerProcess...?
-
reactor.run(0)将关闭信号