
爬虫
csdn_yym
这个作者很懒,什么都没留下…
展开
-
【系列】scrapy启动流程源码分析(1)命令行启动
前言虽然爬虫的入门级编写并不难,但要让爬虫真正稳定可靠的运行起来,真不是一件容易的事。首先,必须要读懂scrapy这个爬虫框架,如果连这个框架的执行逻辑都搞不懂,那么爬虫也很难写好。下面,我将粗略研究一遍scrapy源码,再结合其他博主的文章,把scrapy的启动和运行过程捋一遍。1.命令行启动这里先不谈使用了各种框架的复杂情况,比如scrapyd服务、redis分布式队列等。只看最简单...原创 2019-01-05 22:06:32 · 1778 阅读 · 0 评论 -
【系列】scrapy启动流程源码分析(7)Spider爬虫
7.Spider爬虫这是基本爬虫开发唯一需要自己实现的类。原生scrapy所有的爬虫都需要继承自scrapy.spiders里的各类Spider类。Spider标准爬虫(最常用)CrawlSpider规则爬虫(更灵活)XMLFeedSpiderXML标记语言爬虫CSVFeedSpiderCSV文本爬虫SitemapSpider网站地图爬虫...原创 2019-02-15 17:10:54 · 417 阅读 · 0 评论 -
【系列】scrapy爬虫开发(9)Splash下载服务器
8.Splash下载服务器原创 2019-02-15 17:11:57 · 613 阅读 · 0 评论 -
【系列】scrapy爬虫开发(8)Redis分布式
8.Redis分布式原生scrapy不支持分布式,不适合大型开发。安装redis数据库,然后pip install scrapy_redis安装对应的库,可基于redis实现分布式功能。redis数据库简介Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis是非关系数据库。Redis是轻量型...原创 2019-02-15 17:11:29 · 418 阅读 · 0 评论 -
【系列】scrapy启动流程源码分析(6)Downloader下载器
6.Downloader下载器原创 2019-01-05 22:08:54 · 1290 阅读 · 0 评论 -
【系列】scrapy启动流程源码分析(5)Scraper刮取器
5.Scraper刮取器对ExecutionEngine执行引擎篇出现的Scraper进行展开。Scraper的主要作用是对spider中间件进行管理,通过中间件完成请求,响应,数据分析等工作。Scraper对象scrapy/core/scraper.py#Scraper:class Scraper(object): def __init__(self, crawler): ...原创 2019-01-05 22:08:38 · 859 阅读 · 1 评论 -
【系列】scrapy启动流程源码分析(4)Scheduler调度器
4.Scheduler调度器原创 2019-01-05 22:08:22 · 1846 阅读 · 0 评论 -
【系列】scrapy启动流程源码分析(3)ExecutionEngine执行引擎
3.ExecutionEngine执行引擎上一篇分析了CrawlerProcess和Crawler对象的建立过程,在最终调用CrawlerProcess.start()之前,会首先建立ExecutionEngine执行引擎,执行其open_spider和start方法。ExecutionEngine.open_spiders()scrapy/core/engine.py#ExecutionE...原创 2019-01-05 22:08:09 · 803 阅读 · 1 评论 -
【系列】scrapy启动流程源码分析(2)CrawlerProcess主进程
CrawlerProcess主进程它控制了Twisted的reactor,也就是整个事件循环。它负责配置reactor并启动事件循环,最后在所有爬取结束后停止reactor。另外还控制了一些信号操作,使用户可以手工终止爬取任务。此类在scrapy/crawler.py中定义,同文件内有三个类:Crawler、CrawlerRunner和CrawlerProcess。scrapy/crawl...原创 2019-01-05 22:07:49 · 1775 阅读 · 0 评论