我尝试了所有可以找到的解决方案,而对我来说唯一可行的就是这个。但是为了使其能够正常工作,
scrapy1.1rc1我必须对其进行一些调整:
from scrapy.crawler import Crawlerfrom scrapy import signalsfrom scrapy.utils.project import get_project_settingsfrom twisted.internet import reactorfrom billiard import Processclass Crawlerscript(Process): def __init__(self, spider): Process.__init__(self) settings = get_project_settings() self.crawler = Crawler(spider.__class__, settings) self.crawler.signals.connect(reactor.stop, signal=signals.spider_closed) self.spider = spider def run(self): self.crawler.crawl(self.spider) reactor.run()def crawl_async(): spider = MySpider() crawler = Crawlerscript(spider) crawler.start() crawler.join()
所以现在当我调用时
crawl_async,它开始爬网并且不会阻塞我的当前线程。我绝对不是新手
scrapy,所以这可能不是一个很好的解决方案,但对我有用。
我使用了这些版本的库:
cffi==1.5.0Scrapy==1.1rc1Twisted==15.5.0billiard==3.3.0.22
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)