python爬虫(11)之BeautifulSoup模块

1、模块介绍

所谓BeautifulSoup模块是通过html源代码进行筛选类似于正则表达式那种类型

2、代码

import os
import requests
from bs4 import BeautifulSoup
from PIL import Image
from io import BytesIOheaders = {'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0Safari/537.36 Edg/122.0.0.0'}
res = requests.get('https://www.douban.com/')
output_dir = 'downloaded_images'
os.makedirs(output_dir, exist_ok=True)
soup = BeautifulSoup(res.text, 'html.parser')
img_tags = soup.find_all('img')
for idx, img in enumerate(img_tags):img_url = img.get('src')if not img_url:continuetry:response = requests.get(img_url)response.raise_for_status()  # 确保请求成功img_name = f'image_{idx}.jpg'img_path = os.path.join(output_dir, img_name)with open(img_path, 'wb') as file:file.write(response.content)print(f"图片 {img_name} 已下载")try:image = Image.open(BytesIO(response.content))image.verify()  # 验证图片是否损坏print(f"图片 {img_name} 通过自动检测")except Exception as e:print(f"图片 {img_name} 自动检测失败:{e}")os.remove(img_path)except Exception as e:print(f"下载图片失败:{e}")

具体就长这个样子(这里res.text是做了一个转化在其他的地方可能会把res中去,后面那个是指定的解释器)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java复习02 IO流

Java复习02 IO流 首先,“IO”在计算机里面代表的是“输入/输出”(Input / Output),简单来说,就是计算机与外部世界进行数据交流的过程。比如,你在键盘上敲字,数据就输入到计算机里了&#xff0…

深入理解Spring的ApplicationContext:案例详解与应用

深入理解Spring的ApplicationContext:案例详解与应用 在Spring框架的丰富生态中,ApplicationContext扮演着至关重要的角色。作为BeanFactory的扩展,ApplicationContext不仅继承了其所有功能,还引入了更多高级特性,使得…

一文搞懂dataclass和field

目录 1. 背景2. dataclass函数签名详解2.1 repr示例2.2 eq与order示例2.3 frozen示例2.4 __post_init__2.5 继承 3. Field3.1 default与default_factory3.2 init与repr3.3 compare3.4 metadata Ref 1. 背景 考虑这样一个场景。假如我们要定义一个 Person 类,并希望…

FastAPI 是什么?深入解析

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建基于 Python 的 API。它是一个开源项目,基于 Starlette 和 Pydantic 库构建而成,提供了强大的功能和高效的性能。 FastAPI 官网地址:fastapi.tiango…

《软件工程》复试问答题总结

软件系统的三个测试阶段: 第一阶段:发现和解决BUG 集中在发现bug,考研测试设计能力,发现bug之后如何清晰表述定级,以及验证,之后举一反三尽早发现更多类似bug 第二阶段:质量的管理 多做质量数据…

Vue3自定义指令!!!

通过自定义指令实现菜单显示和权限控制问题。 一、新建一个在src目录下创建包directives,在包中创建一个ts文件。 import { useStore } from "/store/pinia";function hasRoles(role: any) {const pinaRoles useStore().roles;if (typeof role "s…

【RPG Maker MV 仿新仙剑 战斗场景UI (四)】

RPG Maker MV 仿新仙剑 战斗场景UI 四 三级战斗指令菜单效果代码完成效果 下篇预告 三级战斗指令菜单 仙剑1中三级战斗的菜单内容如下:使用、投掷、装备这三项。 效果 在RMMV中原始菜单中是没有这三级菜单的,因此需要重新进行添加进去。 代码 这里贴…

分布式思想

1、单体架构设计存在的问题 传统项目采用单体架构设计,虽然可以在一定的程度上解决企业问题,但是如果功能模块众多,并且将来需要二次开发.由于模块都是部署到同一台tomcat服务器中,如果其中某个模块代码出现了问题,将直接影响整个tomcat服务器运行. 这样的设计耦合性太高.不便…

19.ADC模数转换器知识点+AD单通道AD多通道应用程序示例

0. 江协科技/江科大-STM32标准库开发-各章节详细笔记-查阅传送门_江协科技stm32笔记-CSDN博客文章浏览阅读2.9k次,点赞44次,收藏128次。江协科技/江科大-STM32标准库开发-各章节详细笔记-传送门至各个章节笔记。基本上课程讲的每句都详细记录&#xff0c…

Python转C++的童鞋看这里

一、前言 Python学完了,很多人都去学了C。在学习C之前,建议大家先打好基础,对C和Python的区别先了解了解,会对后续的C学习提供很大的帮助。 二、特点区分 1. Python Python是一种简单而高效的语言,它已经帮你封装好了…

Python-OpenCV-边缘检测

摘要: 本文详细介绍了Python-OpenCV的边缘检测技术,包括基础知识回顾、功能实现、技巧与实践、常见问题与解答等,为读者提供了全面深入的教程。 阅读时长:约60分钟 关键词:Python, OpenCV, 边缘检测, Canny, Sobel …

群晖 Synology Photos DSM7 自定义文件夹管理照片

背景 众所周知,目前群晖DSM7中使用Synology Photos做照片管理时,个人照片只能默认索引 /home/Photos 文件夹,但是如果个人照片很多或者用户很多时,共享文件夹/homes 所在的存储空间就会不够用 当然,如果你的存…

李彦宏“程序员将不再存在”言论被周鸿祎驳斥,网友怒怼:先把百度程序员都开除了

在 3 月 9 日央视的《对话》开年说节目上,百度创始人、董事长兼 CEO 李彦宏表示,基本上以后不会存在“程序员”这种职业了,因为只要会说话,人人都会具备程序员的能力。 “未来的编程语言只会剩下两种,一种叫做英文&am…

Python和RPA之间的区别和联系

Python是实现RPA的工具之一,且RPA要复杂的多,远不是会Python这么简单。 要理解RPA和Python的区别,先看它们各自做什么。 1、什么时候会用到RPA? 比如你的财务同事需要做财务对账,发票报销,税务申报等&…

【刷题训练】LeetCode125. 验证回文串

验证回文串 题目要求 示例 1: 输入: s “A man, a plan, a canal: Panama” 输出:true 解释:“amanaplanacanalpanama” 是回文串。 示例 2: 输入:s “race a car” 输出:false 解释:“rac…

C#常用数据操作方法详解

文章目录 C#常用数据操作方法详解字符大师:String类的使用艺术字符串截取:Substring示例寻找字符串:IndexOf示例字符串替换:Replace示例字符串分割:Split示例转小写:ToLower示例 数学机械师:Mat…

Java 设计模式系列:行为型-观察者模式

简介 观察者模式是一种行为型设计模式,又被称为发布-订阅(Publish/Subscribe)模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 观察者…

全面解析 Axios 请求库的基本使用方法

Axios 是一个流行的基于 Promise 的 HTTP 请求库,用于在浏览器和 Node.js 中进行 HTTP 请求。它提供了简单易用的 API,可以发送各种类型的请求(如 GET、POST、PUT、DELETE等),并处理响应数据,Axios 在前端工…

MySQL常见的数据类型

一、数值型 5 种整型 tinyint、smallint、mediumint、int 和 bigint,主要区别就是取值范围不同,还可以在类型前添加一个 限制词 unsigned,不允许添加负数。 3 种浮点型:不能精确存放 float 和 double,可以精确存放 de…

朋友,代码库的“健身方案”要不要了解一下?

你有没有想过,你的代码库可能正面临“健康危机”—— 代码臃肿、低效交付、BUG隐藏、潜藏的安全风险…… “健身达人”上线 如果你的开发、安全和运维团队像是三位“健身达人”,那么极狐GitLab的DevSecOps线上成熟度评估,就是他们的“健身教…