这一系列文章是我在浏览“Python3 网络爬虫开发实际”一书以及其余线上材料学习爬虫过程中的一些笔记和心得,心愿能分享给大家。
章节概述:Scrapy 相干知识点汇总
章节构造:
- Scrapy 框架介绍
- Scrapy 如何应用
- Selector 如何应用
- Spider 如何应用
- Downloader Middleware 如何应用
- Spider Middleware 如何应用
- Item Pipeline 如何应用
- Scrapy 和 Selenium
- Scrapy 和 Splash
- Scrapyrt 如何应用
- 分布式爬虫框架
- Scrapy 实现分布式 & Scrapyd
- Bloom Filter
具体内容:
- Scrapy 框架介绍
Engine:引擎,解决整个零碎的数据流,触发事务
Item:我的项目,定义爬取后果的数据结构
Scheduler:调度器,承受引擎发过来的申请并将其退出队列中,等引擎再次申请,提供工作给引擎
Downloader:下载器
Spider:蜘蛛定义爬取逻辑和解析规定,提取后果
Item Pipeline: 我的项目管道,负责解决蜘蛛从网页中抽取的我的项目,荡涤,验证和存储数据
Downloader Middlewares:下载器中间件,位于引擎和下载器之间的狗子框架,解决引擎与下载器之间的申请及响应
数据流:Engine open site — Engine send URL to spider — Engine give next URL to Scheduler — Scheduler return URL to Engine — Engine give URL to downloader through downloader middleware — Spider handle result from downloader — Engine pass result from spider to item pipeline — iteration…
- Scrapy 如何应用
1. 装置 Scrapy,MongoDB,pymongo:https://docs.scrapy.org/en/la…
2.scrapy startproject project_name:https://docs.scrapy.org/en/la…
3. 创立 Spider
4. 创立 Item
5. 解析 Response
6. 应用 Item
7. 后续 request:实现迭代
8. 运行
9. 存储文件和应用 item pipeline
- Selector:Scrapy 的独立模块,用于构建选择器对象,调用相干办法像是 xpath 和 css 来提取数据。
https://docs.scrapy.org/en/la…
- Spider
Spider 类的实例能够用于定义爬取网页的动作,剖析网页,后果剖析。同时能够传入名称,许可的域名,和其余爬取相干的参数。
https://github.com/Python3Web…
- Downloader Middleware
Scheduler 从队列拿出一个 Request 给 Downloader 执行下载,这个过程会通过 Downloader Middleware 的解决。Downloader 将 Request 下载实现失去的 Response 返回给 Spider 时会再次通过 Download Middleware 解决。
外围办法:
process_request
process_response
process_exception
https://github.com/Python3Web…
- Spider Middleware
次要用于解决 Spider 的钩子架构。Downloader 生成 Response 后,响应会被发送给 Spider,发送之前会由 Spider Middleware 预处理。
- Item Pipeline
Spider 产生 Item,解决完 Response 后,item 会发送到 Item Pipeline。用于清理 HTML 数据,验证爬取数据,查看爬取字段,查重并抛弃反复内容,将爬取后果保留到数据库。外围办法:
process_item
open_spider
close_spider
from_crawler
https://github.com/Python3Web…
https://docs.scrapy.org/en/la…
- Scrapyrt
提供了 HTTP 接口。通过 HTTP 接口调度 Scrapy 工作。
Source code entrance: https://github.com/Python3Web…
- 分布式爬虫框架
- Scrapy 实现分布式 & Scrapyd
1. 搭建 Redis 服务器
2. 部署代理池和 Cookies 池
3. 配置 Scrapy-Redis
4. 配置存储指标 -MongoDB
5.Scrapyd: 运行 Scrapt 的服务程序
提供一系列 HTTP 接口帮忙部署启动进行删除爬虫程序。