发表评论取消回复
相关阅读
相关 爬虫日记(89):Scrapy的DownloadHandlers类
前面分析了下载器的整个源码,理解了下载器的工作过程,在那里经常会遇到一个类,就是DownloadHandlers类,这个类主要用来对不同的下载协议进行管理的,比如文件协议和ht
相关 爬虫日记(85):Scrapy的ExecutionEngine类(二)
前面可以看到一开始打开蜘蛛类有一次触发调度之外,还有下载数据返回之后进行一次调度。如果中间有调度没有准备好,或者队列满了,这样不会产生有新的下载,那么怎么样再次触发调度发生呢?
相关 爬虫日记(84):Scrapy的Crawler类(二)
spidercls是一个蜘蛛类,比如这里是<class 'ItemDemo.spiders.quotes.QuotesSpider'>内容,self.settings是前面加载
相关 爬虫日记(83):Scrapy的CrawlerProcess类(四)
当前面准备工作都已经做之后,我们就需要让爬虫转换控制权了,就是从命令里转移到引擎运行了,它的触发代码就是在下面: class Command(BaseRunSpiderCom
相关 爬虫日记(83):Scrapy的CrawlerProcess类(三)
前面完成了CrawlerRunner类构造函数的分析,接着从哪里继续开始呢?我想应该按顺序执行的主线来进行,可以从之前运行的命令里看到执行下面的函数: class Comma
相关 爬虫日记(83):Scrapy的CrawlerProcess类(二)
因此继续来分析这两个函数的代码,才能理解蜘蛛类怎么样加载进来,怎么样设置twisted底层的工作框架。我们来查看\_get\_spider\_loader函数的代码,它的定义如
相关 爬虫日记(83):Scrapy的CrawlerProcess类(一)
前面学习了Twisted的基础知识了,接着回过头来再看整个Scrapy程序,在执行 Scrapy 命令时,主要经过以下几步: 1)调用 cmdline.py 的 execut
相关 爬虫日记(88):Scrapy的Downloader类(二)
接着下来,我们来分析Downloader类的初始化过程,以及相关的数据结构,这样才能明白它具体做了些什么事情。 ![watermark_type_ZmFuZ3poZW5naG
相关 爬虫日记(87):Scrapy的RFPDupeFilter类(二)
前面函数的代码已经很清楚,就是生成请求对象的指纹信息,现在来分析每一行代码的作用: ![20210618123946469.png][] 第52和53行是判断请求是否
相关 爬虫日记(86):Scrapy的Scheduler类(二)
上面已经准备了所有队列的对象,下一步我们就来分析怎么进入队列,以及怎么实现优先级队列管理这些请求。这些函数的调用关系如下: ![watermark_type_ZmFuZ3po
还没有评论,来说两句吧...