Scrapy爬虫框架入门(中) - Item Pipeline
程序员文章站
2022-05-02 10:08:24
...
更多文章请关注公众号「我偶像龟叔」
当Item在Spider中被收集之后,它将会被传递到Item Pipeline,此时这里可以看作框架模型(model)。
item pipeline常见实现示例:
- 将爬取结果保存到 数据库 中
- 下载项目图片(item返回包含图片字段)
- 数据清理、查重、验证
- …
本次案例会延伸上一篇文章,阅读之前可以回顾上一篇文章。
Scrapy爬虫框架入门(上) - 慕课网爬虫
四大内置方法:
1、process_item(self, item, spider):# 必须
调用会返回对应爬虫(spider)已爬取到的参数对象。
item – 被爬取的item对象
spider – 爬取该item的spider对象
2、open_spider(self, spider):# 非必须
spider开启会被调用,可做数据库连接。
spider – 被开启的spider对象
3、close_spider(self, spider):# 非必须
spider关闭时会被调用,可做关闭数据库。
spider – 被开启的spider对象
4、from_crawler(cls, crawler):# 非必须
配合__init__使用,创建新的管道实例。不详解...
process_item() 方法测试案例:
#settings.py
ITEM_PIPELINES = {
'imooc_spider.pipelines.TestPipeline': 300,
}
pipelines.py
1、编写MongoDB储存类案例:
这里的process_item方法加了isinstance函数判读类型,因为之后一个框架不单只爬取一个项目。当有多个项目的时候,通过判断可以分别处理不同spider对象间的数据。
settings.py
ITEM_PIPELINES = {
'imooc_spider.pipelines.ImoocMongoDbPipeline': 300,
}
pipelines.py
结果:
2、编写下载项目图片案例:
实现图片管道必须继承ImagesPipeline类
from scrapy.pipelines.images import ImagesPipeline
内置方法:
1、get_media_requests(item, info):
请求下载指定item对象数据
2、item_completed(self, results, item, info):
对下载结果进行处理
results - 下载好的资源参数([(True, {'url': 'https://img.mukewang.com/5861d2500001d39406000338-240-135.jpg', 'path': 'full/6922b98c7acde37f0b570650844e2e660b82991a.jpg', 'checksum': '037f4f643599f3e7870225798ece845b', 'status': 'downloaded'})])
item - 被爬取的item对象
案例实现:
# settings.py
ITEM_PIPELINES = {
'imooc_spider.pipelines.ImoocSpiderPipeline': 300, # 资源爬取模型
'imooc_spider.pipelines.ImoocImagePipeline': 301, # 图片下载模型
}
IMAGES_STORE = 'public/images' # 图片默认下载路径
pipelines.py
结果:
结语:
文章介绍了item pipeline的基本原理和自定义数据储存、图片下载的方法。有疑问可以到github上一起交流学习。
源码公众号回复关键字「慕课网爬虫」
上一篇: 你和爱人之间的情侣呢称是什么?
推荐阅读
-
Python的爬虫程序编写框架Scrapy入门学习教程
-
Python的爬虫程序编写框架Scrapy入门学习教程
-
Python爬虫框架Scrapy基本用法入门教程
-
爬虫(十六):Scrapy框架(三) Spider Middleware、Item Pipeline、对接Selenium
-
Python:Scrapy框架中Item Pipeline组件使用详解
-
python爬虫入门(六) Scrapy框架之原理介绍
-
Python爬虫框架之Scrapy中Spider的用法
-
Python抓取框架Scrapy爬虫入门:页面提取
-
python入门之scrapy框架中Request对象和Response对象的介绍
-
荐 一、scrapy爬虫框架——概念作用和工作流程 & scrapy的入门使用