码迷,mamicode.com
首页 > 编程语言 > 详细

Python爬虫知识点四--scrapy框架

时间:2017-11-27 23:46:15      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:exports   下载   spi   文件中   引入   sel   new   col   初始化   

一。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框架

标签:exports   下载   spi   文件中   引入   sel   new   col   初始化   

原文地址:http://www.cnblogs.com/LHWorldBlog/p/7887628.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!