python scrapy框架详解_Python爬虫知识点四--scrapy框架
一。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框架相关推荐
- python requests库详解_python爬虫之路(一)-----requests库详解
requests库 requests库是python实现的最简单易用的http库. requests库的功能详解. 我们可以自然而然地想到这些方法其实就是http协议对资源的操作. 调用request ...
- python爬虫框架scrapy实例详解_python爬虫框架scrapy实例详解
生成项目 scrapy提供一个工具来生成项目,生成的项目中预置了一些文件,用户需要在这些文件中添加自己的代码. 打开命令行,执行:scrapy startproject tutorial,生成的项目类 ...
- python协程详解_python协程详解
原博文 2019-10-25 10:07 − # python协程详解 ![python协程详解](https://pic2.zhimg.com/50/v2-9f3e2152b616e89fbad86 ...
- python int函数详解_Python内置函数OCT详解
英文文档:oct ( x ) Convert an integer number to an octal string. The result is a valid Python expression ...
- python average函数详解_python 函数详解
函数函数是代码的一种组织形式 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数,无返回结果的叫过程,python不加以区分 ...
- python时间函数详解_Python:Numpy库基础分析——详解datetime类型的处理
原标题:Python:Numpy库基础分析--详解datetime类型的处理 Python:Numpy库基础分析--详解datetime类型的处理 关于时间的处理,Python中自带的处理时间的模块就 ...
- python中configparser详解_Python中的ConfigParser模块使用详解
1.基本的读取配置文件 -read(filename) 直接读取ini文件内容 -sections() 得到所有的section,并以列表的形式返回 -options(section) 得到该sect ...
- python 元类 详解_Python 元类详解 __new__、__init__、__call__、__metacalss__
了解元类之前,先了解几个魔术方法: __new__.__init__.__call__ __new__: 对象的创建,是一个静态方法,第一个参数是cls.(想想也是,不可能是self,对象还没创建,哪 ...
- python average函数详解_python基础之函数详解
Python基础之函数详解 一.函数的定义 到现在为止,我们已经掌握了Python的基本语法和数据类型等相关基础知识了,以进行一个项目的编写了,这个时候,就会发现,很多代码需要我们进行复制粘贴,这简直 ...
最新文章
- Caffe代码导读(0):路线图
- Palindrome(插入字符变成回文字符串)
- STM32F4 HAL库开发 -- STM32F407引脚图
- 净误差与遗漏为负值的含义_巴丹吉林沙漠湖泊水位变化及地下水净补给量
- [转]mysql优化——show processlist命令详解
- SEO优化篇 - 搜索引擎抓取href=#!锚点
- Python UnicodeEncodeError: ‘gbk‘ codec can‘t encode character 解决方法
- foreach delete item error
- 坑爹系列:sizeof运算符
- AVEVA InTouch安全网关 AccessAnywhere 任意文件读取漏洞 CVE-2022-23854
- 亲历2010中国移动开发者大会
- 《BiLSTM with Multi-Polarity Orthogonal Attention for Implicit Sentiment Analysis》论文阅读笔记
- 普通运维人员就是秋后的蚂蚱!
- python爬虫学习笔记 3.9 (了解参考:训练Tesseract)
- Line推出新语音群聊功能 最多支持200人
- 解决了群友的js的问题 (! + [] + [] + ![]).length = 9 的验证 - Kaiqisan
- SQLZOOL练习题答案和解析 第1关 SELECT name
- 【圣诞限定】2022的末尾,送TA一颗圣诞树吧
- 靶机渗透(一)——bulldog2
- CCNP精粹系列之二十九--发布bgp子网信息,推荐