學(xué)習(xí)要點(diǎn)
學(xué)習(xí)如何跟蹤調(diào)試scrapy框架
oh..距離上次寫scrapy筆記3已經(jīng)有一個(gè)多月了,跳票這么久,除了投簡(jiǎn)歷找工作就是自己懶癌發(fā)作.
嗯,等確定了到底去哪工作之后一定會(huì)勤奮的更新的!
今天來(lái)講講怎么跟蹤調(diào)試scrapy.
大家都知道scrapy是用命令行運(yùn)行的,其中官方文檔也有介紹怎么查看scrapy的狀態(tài),還有嵌入一句代碼在有response的地方停止等等.
不過(guò)有時(shí)我們需要跟蹤進(jìn)scrapy源碼里深入學(xué)習(xí)他的精髓,這時(shí)候官方文檔的說(shuō)明就不足了.
我在網(wǎng)上找到這一份代碼,可以用于跟蹤調(diào)試,至于原理什么的.其實(shí)就是scrapy是用了twisted的reactor來(lái)啟動(dòng)的(異步多線程的特性)
然后我們自己寫個(gè)reactor來(lái)手動(dòng)啟動(dòng)scrapy,就可以跟蹤調(diào)試了,再深入一點(diǎn)的知識(shí)我就不會(huì)了..twisted框架還沒開始學(xué)呢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同目錄.然后就可以從這個(gè)py文件啟動(dòng)進(jìn)行調(diào)試了~