当前位置: 首页 > news >正文

scrapy--图片管道-ImagesPipeline

免责声明:本文仅做演示与分享~ 

目录

介绍

 ImagesPipeline

pipelines.py

items.py

zz.py

settings.py


介绍

scrapy 还提供了处理图片、视频、音频等媒体文件的插件,如:

- scrapy-images:用于下载和处理图片

- scrapy-video:用于下载和处理视频

- scrapy-podcast:用于下载和处理播客

- scrapy-feedstorage:用于存储和处理RSS/Atom订阅源

- scrapy-splash:用于渲染JavaScript渲染后的网页

- scrapy-cdr:用于处理爬取数据并生成CDR(Call Detail Record,呼叫详单记录)

这些插件可以帮助我们更好地处理媒体文件,提高爬虫的效率。


scrapy 还额外提供了一种保存图片的方法:

 ImagesPipeline

pip install Pillow  # python的图像处理库


站长素材

pipelines.py

from itemadapter import ItemAdapter
import scrapy
from scrapy.pipelines.images import ImagesPipeline# zz:
class ScrapyDemo1Pipeline(ImagesPipeline):  # 继承# 重写父类方法def get_media_requests(self, item, info):# 向图片url发起请求#  meta={"item": item['img_name']}  传递图片的名字.yield scrapy.Request(item["img_src"], meta={"item": item["img_name"]})# 指定图片的保存名字:def file_path(self, request, response=None, info=None, *, item=None):img_name = request.meta["item"] + ".jpg"return img_name

items.py

# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.htmlimport scrapyclass ScrapyDemo1Item(scrapy.Item):  # 类名可以自定义,但是必须继承scrapy.Item## zzimg_src = scrapy.Field()img_name = scrapy.Field()

zz.py

爬虫文件

import scrapyfrom scrapy_demo1.items import ScrapyDemo1Itemclass ZzSpider(scrapy.Spider):name = "zz"# allowed_domains = ["zz.com"]start_urls = ["https://sc.chinaz.com/tupian/"]def parse(self, response):# html 数据divs = response.xpath('//div[@class="item"]')  # 这个地方不能getall(),对象.# print(len(divs))for div in divs:# 图片地址img_src = div.xpath("./img/@data-original").get()# 拼接协议img_src = "https:" + img_src# 图片的名字img_name = div.xpath("./img/@alt").get()print(img_name, img_src)# https://scpic3.chinaz.net/files/default/imgs/2024-07-31/65ae6ef86d4b1a44# _s.jpg# https://scpic3.chinaz.net/files/default/imgs/2024-07-31/65ae6ef86d4b1a44_s.jpg# break# # 创建item对象item = ScrapyDemo1Item()item["img_src"] = img_srcitem["img_name"] = img_nameyield item

settings.py

# 加入配置:保存图片的路径

TMAGES_STORE = "../scrapy_demo1/images"


 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Flutter Web 正式官宣弃用 HTML renderer , Canvas 路线成为唯一
  • [mysql][sql]安装完mysql8跨主机不能访问解决办法
  • Science Robotics 与蜜蜂群互动的蜂窝型机器人系统
  • web测试之功能测试常用的方法有哪几种?有什么要点要注意?
  • Leetcode 3266. Final Array State After K Multiplication Operations II
  • Pytorch 模型保存与加载
  • java中拷贝文件数据到U盘
  • Excel的使用总结1
  • 开始尝试从0写一个项目--后端(四)
  • 图形几何算法 -- 判断两条线段是否相交
  • 线性层与MLP层
  • Git 多人协作
  • Linux --- 文件系统
  • 后来你发现 根密钥 的存储并不安全,于是你认识了PUF。
  • 怎么解决小程序的异步请求问题
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 03Go 类型总结
  • Docker入门(二) - Dockerfile
  • ECS应用管理最佳实践
  • httpie使用详解
  • IDEA 插件开发入门教程
  • Mysql优化
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Python_网络编程
  • unity如何实现一个固定宽度的orthagraphic相机
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 异步
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • FaaS 的简单实践
  • Java总结 - String - 这篇请使劲喷我
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (poj1.3.2)1791(构造法模拟)
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (强烈推荐)移动端音视频从零到上手(上)
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (源码分析)springsecurity认证授权
  • (转)c++ std::pair 与 std::make
  • .bat批处理(六):替换字符串中匹配的子串
  • .md即markdown文件的基本常用编写语法
  • .NET C# 配置 Options
  • .net core 控制台应用程序读取配置文件app.config
  • .net经典笔试题
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .php文件都打不开,打不开php文件怎么办
  • @Async注解的坑,小心
  • [ 数据结构 - C++] AVL树原理及实现
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽