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

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

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

章节结构git

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

具体内容:github

  • Scrapy框架介绍

Scrapy.png
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...

  • 分布式爬虫框架

Distribute crawler.png

  • Scrapy实现分布式 & Scrapyd

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

相关文章
相关标签/搜索