Python3网络爬虫开发实践读书笔记 --- 第十三章-第十五章 Scrapy框架

这一系列文章是我在阅读“Python3网络爬虫开发实践”一书以及其他线上资料学习爬虫过程中的一些笔记和心得,希望能分享给大家。

章节概述:Scrapy相关知识点汇总

章节结构

  • Scrapy框架介绍
  • Scrapy如何使用
  • Selector如何使用
  • Spider如何使用
  • Downloader Middleware如何使用
  • Spider Middleware如何使用
  • Item Pipeline如何使用
  • Scrapy和Selenium
  • Scrapy和Splash
  • Scrapyrt如何使用
  • 分布式爬虫框架
  • Scrapy实现分布式 & Scrapyd
  • Bloom Filter

具体内容:

  • Scrapy框架介绍

Python3网络爬虫开发实践读书笔记 --- 第十三章-第十五章 Scrapy框架_第1张图片
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...

  • 分布式爬虫框架

Python3网络爬虫开发实践读书笔记 --- 第十三章-第十五章 Scrapy框架_第2张图片

  • Scrapy实现分布式 & Scrapyd

1.搭建Redis服务器
2.部署代理池和Cookies池
3.配置Scrapy-Redis
4.配置存储目标-MongoDB
5.Scrapyd: 运行Scrapt的服务程序
提供一系列HTTP接口帮助部署启动停止删除爬虫程序。

你可能感兴趣的:(python,读书笔记,网页爬虫)