本系列文章是我在阅读《Python3网络爬虫开发实战》等网络资料的同时学习爬虫的过程希望能分享一些我的笔记和与你的经历。章节概述:Scrapy相关知识总结章节结构:Scrapy框架介绍如何在Scrapy中使用Selector如何使用Spider如何使用Downloader中间件如何使用Spider中间件如何使用ItemPipeline如何使用Scrapy和Selenium&ScrapydBloomFilterSpecificcontent:Scrapy框架介绍Engine:引擎,处理整个系统的数据流,触发事务Item:项目,定义爬取结果的数据结构Scheduler:调度器,接受来自引擎的请求,加入队列,等待engine再次请求,向引擎提供任务Downloader:DownloaderSpider:Spider定义爬取逻辑和解析规则,提取结果Middlewares:下载器中间件,引擎和下载器之间的狗子框架,处理请求和响应引擎和下载器之间的nse数据流:引擎打开站点——引擎发送URL给蜘蛛——引擎给调度器下一个URL——调度器返回URL给引擎——引擎通过下载器中间件把URL给下载器——蜘蛛处理结果fromdownloader--Enginepassresultfromspidertoitempipeline--iteration...如何使用Scrapy1.安装Scrapy,MongoDB,pymongo:https://docs.scrapy.org/en/la...2.scrapystartprojectproject_name:https://docs.scrapy.org/en/la...3。创建Spider4。创建项目5。解析Response6。使用项目7。后续请求:实现迭代8.运行9.存储文件并使用itempipelineSelector:Scrapy的独立模块,用于构建selector对象,调用xpath、css等相关方法提取数据https://docs.scrapy.org/en/la...SpiderSpider类的实例可以用来定义爬取网页,分析网页,分析结果的动作。同时可以传入名称、允许的域名等与爬取相关的参数。https://github.com/Python3Web...DownloaderMiddlewareScheduler从队列中取出一个Request给Downloader执行下载,这个过程会被DownloaderMiddleware处理。当Downloader将Request下载完成后得到的Response返回给Spider时,会再次被DownloadMiddleware处理。核心方法:process_requestprocess_responseprocess_exceptionhttps://github.com/Python3Web...Spider中间件主要用于处理Spider的hook架构。Downloader生成Response后,会将Response发送给Spider,SpiderMiddleware会在发送前对其进行预处理。ItemPipelineSpider生成Item,处理完Response后将item发送到ItemPipeline。用于清理HTML数据,校验爬取数据,检查爬取字段,检查丢弃重复内容,将爬取结果保存到数据库。核心方法:process_itemopen_spiderclose_spiderfrom_crawlerhttps://github.com/Python3Web...https://docs.scrapy.org/en/la...Scrapyrt提供了HTTP接口。通过HTTP接口调度Scrapy任务。源码入口:https://github.com/Python3Web...分布式爬虫框架Scrapy实现分布式&Scrapyd1。构建Redis服务器2。部署代理池和Cookiespool3。配置Scrapy-Redis4。配置存储目标-MongoDB5.Scrapyd:运行Scrat的服务程序,提供了一系列的HTTP接口,帮助部署、启动、停止、删除爬虫程序。
