这一系列文章是我在浏览“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接口帮忙部署启动进行删除爬虫程序。