一。scrapy结构数据

解释:

1.名词解析:

o 引擎(Scrapy Engine)

o 调度器(Scheduler)

o 下载器(Downloader)

o 蜘蛛(Spiders)

o 项目管道(Item Pipeline)

o 下载器中间件(Downloader Middlewares)

o 蜘蛛中间件(Spider Middlewares)

o 调度中间件(Scheduler Middlewares)

2.具体解析

绿线是数据流向

 从初始URL开始,Scheduler会将其交给Downloader进

行下载

 下载之后会交给Spider进行分析

 Spider分析出来的结果有两种

 一种是需要进一步抓取的链接,如 “下一页”的链接,它们

会被传回Scheduler;另一种是需要保存的数据,它们被送到Item Pipeline里,进行

后期处理(详细分析、过滤、存储等)。

 在数据流动的通道里还可以安装各种中间件,进行必

要的处理。

二。初始化爬虫框架 Scrapy

命令: scrapy startproject qqnews

ps:真正的项目是在spiders里面写入的

三。scrapy组件spider

爬取流程

1. 先初始化请求URL列表,并指定下载后处

理response的回调函数。

2. 在parse回调中解析response并返回字典,Item

对象,Request对象或它们的迭代对象。

3 .在回调函数里面,使用选择器解析页面内容

,并生成解析后的结果Item。

4. 最后返回的这些Item通常会被持久化到数据库

中(使用Item Pipeline)或者使用Feed exports将

其保存到文件中。

标准项目结构实例:

1.items结构:定义变量,根据不同种数据结构定义

2.spider结构中引入item里面,并作填充item

3。pipline去清洗,验证,存入数据库,过滤等等 后续处理

Item Pipeline常用场景

 清理HTML数据

 验证被抓取的数据(检查item是否包含某些字段)

 重复性检查(然后丢弃)

 将抓取的数据存储到数据库中

4.Scrapy组件Item Pipeline

经常会实现以下的方法:

 open_spider(self, spider) 蜘蛛打开的时执行

 close_spider(self, spider) 蜘蛛关闭时执行

 from_crawler(cls, crawler) 可访问核心组件比如配置和

信号,并注册钩子函数到Scrapy中

pipeline真正处理逻辑

定义一个Python类,实现方法process_item(self, item,

spider)即可,返回一个字典或Item,或者抛出DropItem

异常丢弃这个Item。

5.settings中定义哪种类型的pipeline

持续更新中。。。。,欢迎大家关注我的公众号LHWorld.

python scrapy框架详解_Python爬虫知识点四--scrapy框架相关推荐

  1. python requests库详解_python爬虫之路(一)-----requests库详解

    requests库 requests库是python实现的最简单易用的http库. requests库的功能详解. 我们可以自然而然地想到这些方法其实就是http协议对资源的操作. 调用request ...

  2. python爬虫框架scrapy实例详解_python爬虫框架scrapy实例详解

    生成项目 scrapy提供一个工具来生成项目,生成的项目中预置了一些文件,用户需要在这些文件中添加自己的代码. 打开命令行,执行:scrapy startproject tutorial,生成的项目类 ...

  3. python协程详解_python协程详解

    原博文 2019-10-25 10:07 − # python协程详解 ![python协程详解](https://pic2.zhimg.com/50/v2-9f3e2152b616e89fbad86 ...

  4. python int函数详解_Python内置函数OCT详解

    英文文档:oct ( x ) Convert an integer number to an octal string. The result is a valid Python expression ...

  5. python average函数详解_python 函数详解

    函数函数是代码的一种组织形式 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数,无返回结果的叫过程,python不加以区分 ...

  6. python时间函数详解_Python:Numpy库基础分析——详解datetime类型的处理

    原标题:Python:Numpy库基础分析--详解datetime类型的处理 Python:Numpy库基础分析--详解datetime类型的处理 关于时间的处理,Python中自带的处理时间的模块就 ...

  7. python中configparser详解_Python中的ConfigParser模块使用详解

    1.基本的读取配置文件 -read(filename) 直接读取ini文件内容 -sections() 得到所有的section,并以列表的形式返回 -options(section) 得到该sect ...

  8. python 元类 详解_Python 元类详解 __new__、__init__、__call__、__metacalss__

    了解元类之前,先了解几个魔术方法: __new__.__init__.__call__ __new__: 对象的创建,是一个静态方法,第一个参数是cls.(想想也是,不可能是self,对象还没创建,哪 ...

  9. python average函数详解_python基础之函数详解

    Python基础之函数详解 一.函数的定义 到现在为止,我们已经掌握了Python的基本语法和数据类型等相关基础知识了,以进行一个项目的编写了,这个时候,就会发现,很多代码需要我们进行复制粘贴,这简直 ...

最新文章

  1. Caffe代码导读(0):路线图
  2. Palindrome(插入字符变成回文字符串)
  3. STM32F4 HAL库开发 -- STM32F407引脚图
  4. 净误差与遗漏为负值的含义_巴丹吉林沙漠湖泊水位变化及地下水净补给量
  5. [转]mysql优化——show processlist命令详解
  6. SEO优化篇 - 搜索引擎抓取href=#!锚点
  7. Python UnicodeEncodeError: ‘gbk‘ codec can‘t encode character 解决方法
  8. foreach delete item error
  9. 坑爹系列:sizeof运算符
  10. AVEVA InTouch安全网关 AccessAnywhere 任意文件读取漏洞 CVE-2022-23854
  11. 亲历2010中国移动开发者大会
  12. 《BiLSTM with Multi-Polarity Orthogonal Attention for Implicit Sentiment Analysis》论文阅读笔记
  13. 普通运维人员就是秋后的蚂蚱!
  14. python爬虫学习笔记 3.9 (了解参考:训练Tesseract)
  15. Line推出新语音群聊功能 最多支持200人
  16. 解决了群友的js的问题 (! + [] + [] + ![]).length = 9 的验证 - Kaiqisan
  17. SQLZOOL练习题答案和解析 第1关 SELECT name
  18. 【圣诞限定】2022的末尾,送TA一颗圣诞树吧
  19. 靶机渗透(一)——bulldog2
  20. CCNP精粹系列之二十九--发布bgp子网信息,推荐

热门文章

  1. [LeetCode] Missing Ranges 缺失区间
  2. POJ 2991 Crane(线段树+计算几何)
  3. bzoj 2761 平衡树
  4. 数据工作-百度统计初体验
  5. [JAVA语法]怎样制作ear,war文件
  6. 行为型设计模式(5)—— 策略模式(Strategy Pattern)
  7. 学习GRPC(一) 简单实现
  8. unity, 取消ugui button响应键盘
  9. Ubuntu Server 安装桌面untiy
  10. shell 并行执行与串行执行