scrapy--图片管道-ImagesPipeline

news/2024/9/18 14:56:16/ 标签: scrapy, windows, 安全, 网络, 爬虫, python

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

目录

介绍

 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

python">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

python"># 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

爬虫文件

python">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"


 


http://www.ppmy.cn/news/1516133.html

相关文章

GATK SampleList接口介绍

在 GATK 中,SampleList 是一个接口,用于表示一个样本列表。这些样本通常是在基因组分析过程中被处理的不同生物样本。SampleList 接口提供了访问这些样本的一些基本方法,通常用于多样本分析任务,比如变异检测或基因组重测序。 Sa…

Golang | Leetcode Golang题解之第354题俄罗斯套娃信封问题

题目&#xff1a; 题解&#xff1a; func maxEnvelopes(envelopes [][]int) int {n : len(envelopes)if n 0 {return 0}sort.Slice(envelopes, func(i, j int) bool {a, b : envelopes[i], envelopes[j]return a[0] < b[0] || a[0] b[0] && a[1] > b[1]})f : …

【数据结构-前缀异或】力扣1310. 子数组异或查询

有一个正整数数组 arr&#xff0c;现给你一个对应的查询数组 queries&#xff0c;其中 queries[i] [Li, Ri]。 对于每个查询 i&#xff0c;请你计算从 Li 到 Ri 的 XOR 值&#xff08;即 arr[Li] xor arr[Li1] xor … xor arr[Ri]&#xff09;作为本次查询的结果。 并返回一…

探索Facebook的区块链计划:未来社交网络的变革

随着区块链技术的迅速发展&#xff0c;社交网络领域正面临一场深刻的变革。Facebook&#xff0c;作为全球最大且最具影响力的社交平台之一&#xff0c;正在积极探索区块链技术的应用。本文将深入探讨Facebook的区块链计划&#xff0c;分析其潜在的变革性影响&#xff0c;并展望…

7-9 字母三角形

从键盘输入n&#xff0c;输出n行的如下图形 a ab abc abcd abcde ............. ................ 输入格式: 从键盘输入一个正整数n&#xff0c;输入数据保证不大于26。 输出格式: 如题所述的图形。注意输出的字母之间没有空格。 输入样例1: 5输出样例1: a ab a…

自动化巨头施耐德电气,部分业务被其供应商收购:之前还收购过霍尼韦尔

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 供应商逆袭&#xff1a;小鱼吃大鱼的商业奇迹 英国电气行业掀起一阵惊涛骇浪。斯塔福德郡的中型企业Goodfish Group竟然收购了全球巨头施耐德电气…

Spark MLlib 特征工程系列—特征转换Tokenizer和移除停用词

Spark MLlib 特征工程系列—特征转换Tokenizer和移除停用词 Tokenizer和RegexTokenizer 在Spark中,Tokenizer 和 RegexTokenizer 都是用于文本处理的工具,主要用于将字符串分割成单词(tokens),但它们的工作方式和使用场景有所不同。 1. Tokenizer 功能: Tokenizer 是最…

【Python机器学习】NLP——一个简陋的聊天机器人

目录 正则表达式 一个简答的聊天机器人 另一种方法 正则表达式就是一种FSM&#xff0c;同时它也给出了一种可能的NLP方法&#xff0c;即基于模式的方法。 正则表达式 现实生活中&#xff0c;密码锁其实就是一台简单的语言处理机。密码锁不能阅读和理解课本&#xff0c;但是…

nodejs搭建代理服务器解决跨域问题

1.安装express、http-proxy-middleware npm install express http-proxy-middleware2.根据情况额外再安装一个nodemon&#xff0c;可以在检测到文件变化时自动重启应用程序,省去了手动重启的麻烦 npm install nodemon搭建代理服务器 node index.js const express require(e…

大数据系统测试——大数据系统解析(上)

各位好&#xff0c;我是 道普云 欢迎关注我的主页 希望这篇文章对想提高软件测试水平的你有所帮助。 在本文中我们一起来看一下大数据系统每一个层次需要解决的技术问题和对应的一些技术需求。以此来作为学习大数据系统测试的基础。 数据收集层主要是进行数据源的分布式、…

图了个图 - 目前最满意的AI修图软件

图了个图是一款完全免费无广告的AI修图软件&#xff0c;系统占用极低&#xff0c;可以通过AI处理图片。具体功能请查看截图&#xff0c;功能丰富多样。登录后即可享受永久会员&#xff0c;所有功能全开放。目前只有安卓版&#xff0c;后续还会继续更新更多功能。 链接&#xf…

等保测评中的安全测试方法

等保测评&#xff0c;即信息安全等级保护测评&#xff0c;是我国网络安全领域的重要评估机制&#xff0c;用于验证网络系统或应用是否满足相应的安全保护等级要求。在等保测评中&#xff0c;安全测试方法扮演着至关重要的角色。本文将详细介绍等保测评中常用的安全测试方法及其…

用阿里云“无影”搭建《黑神话:悟空》电脑环境

目录 《黑神话&#xff1a;悟空》 阿里云无影试用版概述 阿里云无影云电脑试用版情况 具体详细过程&#xff08;搭建环境&#xff09; 《黑神话&#xff1a;悟空》 《黑神话&#xff1a;悟空》作为一款高品质的国产游戏&#xff0c;对硬件配置有一定的要求。根据公开发布的…

TypeSript5 联合类型|类型断言

联合类型 | 类型断言 交叉类型 联合类型 (|) //例如我们的手机号通常是13XXXXXXX 为数字类型 这时候产品说需要支持座机 //所以我们就可以使用联合类型支持座机字符串 let myPhone: number | string 010-820 //这样写是会报错的应为我们的联合类型只有数字和字符串并没有布…

Web-ssrfme--redis 未授权访问攻击

目录 1、题目源码 2、测试ssrf 3、发现主机 4、发现服务 5、redis 未授权访问攻击 6&#xff0c;拿flag 1、题目源码 <?php highlight_file(__file__); function curl($url){ $ch curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER…

Docker绑定挂载使用手册

目录 目标 官方文档 绑定挂挂载&#xff08;Bind mounts&#xff09; 简介 基本创建方法 控制读写权限&#xff08;默认有读写权限&#xff09; 为什么绑定挂载不适合做数据库持久化 为什么绑定挂载更适合做热部署 临时挂载&#xff08;tmpfs mounts&#xff09; 简介…

开发者社区✖️外滩大会「创新者舞台」——《特斯拉,不止于车》

备受瞩目的“2024 Inclusion外滩大会”将于2024年9月5日至7日在上海黄浦世博园区盛大开幕。 外滩大会云集了蚂蚁集团、清华大学、复旦大学、上海交通大学、同济大学、浙江大学、上海报业集团、外滩投资集团等在学术界和产业界享有科技盛誉的组织。 大会将延续 “科技创造可持续…

Cambridge Pixel推出综合安防软件平台VSD-C2

Cambridge Pixel公司专注于雷达数据处理与目标跟踪技术&#xff0c;雷达显控软件。从2012年以来&#xff0c;Cambridge Pixel公司一直专注于开发以雷达和摄像头为核心的联动安防产品。为此先后推出了VSD, RadarWatch, Alarm Server, Camera Manager等一系列产品&#xff0c;应用…

【计算机网络】名词解释--网络专有名词详解

在网络通信中&#xff0c;有许多专业术语和概念&#xff0c;它们共同构成了网络通信的基础。以下是一些常见的网络术语及其定义和相互之间的关系&#xff1a; 一、网络基础 1.1 电路交换&#xff1a;电路交换是一种在数据传输前建立专用通信路径的通信方式。在通信开始前&…

鹭鹰优化算法SBOA优化RBF神经网络的扩散速度实现多数入多输出数据预测,可以更改数据集(MATLAB代码)

一、鹭鹰优化算法介绍 鹭鹰优化算法&#xff08;Secretary Bird Optimization Algorithm, SBOA&#xff09;是一种新型的元启发式算法&#xff0c;它于2024年4月由Youfa Fu等人提出&#xff0c;并发表在SCI人工智能二区顶刊《Artificial Intelligence Review》上。该算法的灵感…