学习要点
学习如何跟踪调试scrapy框架
oh..距离上次写scrapy笔记3已经有一个多月了,跳票这么久,除了投简历找工作就是自己懒癌发作.
嗯,等确定了到底去哪工作之后一定会勤奋的更新的!
今天来讲讲怎么跟踪调试scrapy.
大家都知道scrapy是用命令行运行的,其中官方文档也有介绍怎么查看scrapy的状态,还有嵌入一句代码在有response的地方停止等等.
不过有时我们需要跟踪进scrapy源码里深入学习他的精髓,这时候官方文档的说明就不足了.
我在网上找到这一份代码,可以用于跟踪调试,至于原理什么的.其实就是scrapy是用了twisted的reactor来启动的(异步多线程的特性)
然后我们自己写个reactor来手动启动scrapy,就可以跟踪调试了,再深入一点的知识我就不会了..twisted框架还没开始学呢0.0
from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy import log, signals
from scrapy.utils.project import get_project_settings
from spiders.MoiveSpider import MoiveSpider
spider = MoiveSpider() #这里改为你的爬虫类名
settings = get_project_settings()
crawler = Crawler(settings)
crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
reactor.run()
如代码所示,把这份代码保存到py文件中,与items.py同目录.然后就可以从这个py文件启动进行调试了~