这一系列文章是我在阅读“Python3网络爬虫开发实践”一书以及其余线上资料学习爬虫过程当中的一些笔记和心得,但愿能分享给你们。css
章节概述:Scrapy相关知识点汇总html
章节结构:git
具体内容:github
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...数据库
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服务器
https://docs.scrapy.org/en/la...网络
Spider类的实例能够用于定义爬取网页的动做,分析网页,结果分析。同时能够传入名称,许可的域名,和其余爬取相关的参数。
https://github.com/Python3Web...数据结构
Scheduler从队列拿出一个Request给Downloader执行下载,这个过程会通过Downloader Middleware的处理。Downloader将Request下载完成获得的Response返回给Spider时会再次通过Download Middleware处理。
核心方法:
process_request
process_response
process_exception
https://github.com/Python3Web...架构
主要用于处理Spider的钩子架构。Downloader生成Response后,响应会被发送给Spider,发送以前会由Spider Middleware预处理。框架
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...
提供了HTTP接口。经过HTTP接口调度Scrapy任务。
Source code entrance: https://github.com/Python3Web...
1.搭建Redis服务器2.部署代理池和Cookies池3.配置Scrapy-Redis4.配置存储目标-MongoDB5.Scrapyd: 运行Scrapt的服务程序提供一系列HTTP接口帮助部署启动中止删除爬虫程序。