python 抓取页面图片并保存到本地

news2024/10/6 18:27:53

1 直接上代码了 下面再做说明
今天就拿抓取这个页面的这块的图片为例
https://sc.chinaz.com/tupian/beijingtupian_2.html
在这里插入图片描述

#分页下载所有的图片 完整例子 参考文档 https://blog.csdn.net/Monster_No17/article/details/106277822
import requests,lxml,re             #发出请求
from bs4 import BeautifulSoup as  Bs #需安装 BeautifulSoup4
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
}
for j in  range(2,4): #j的取值范围2 3 range(i)表示生成从0到i-1的整数序列
    url = 'http://sc.chinaz.com/tupian/beijingtupian_{}.html'.format(j)
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
    }
    response = requests.get(url=url,headers=headers).text
    #requests.get(url=url,headers=headers).encoding ISO-8859-1 网页编码
    #print(response)
    #避免字符乱码
    response = response.encode('ISO-8859-1')
    response = response.decode('utf-8','ignore')
    sourcehtml = Bs(response,'lxml')
    #返回list对象
    #imagehtml = sourcehtml.find_all("img",src=re.compile('static/common/com_images/'),alt=re.compile('图片'))
    #find_all( name , attrs/class_ , recursive , string , **kwargs ) 或者可以这么写
    imagehtml = sourcehtml.find_all("img", attrs={'src':re.compile('static/common/com_images/'),'class':'lazy'}, alt=re.compile('图片'))
    for i in imagehtml:
        imgsrc = i.get('src')
        alt = i.get('alt')
        data_original = i.get('data-original')
        #i.get('alt')[0:-2]) 情人节玫瑰花梦幻背景图片 截取结果 情人节玫瑰花梦幻背景
        #保存图片
        with open('D:\\testpy\\背景图\\{}.jpg'.format(i.get('alt')[0:-2]), 'wb') as fd:
            ima = requests.get('https:' + data_original).content  # 此处注意缩进
            fd.write(ima)

根据需求下载指定页码的图片 最终会在指定的本地目录得到下载的图片
在这里插入图片描述

2 下面就find_all做语法做一些备注
find_all( name , attrs/class_ , recursive , string , **kwargs )
1> name标签名搜索
find_all(“title”)
find_all(name=[‘div’,‘span’])
2> 基于标签的属性查找id\class_\attrs…
通过标签属性查找的方式适用大多数标签属性,包括id,style,title,但有 “-”,Class标签属性例外。详解如下:
2.1> 通用方式属性搜索——attrs
比如html5标签中的data-custom属性,如果我们这样
soup.find(data-custom=“custom”)#错误写法
解决办法是在attrs属性用字典进行传递参数:
soup.find(attrs={‘data-custom’:‘custom’})
2.2> class名搜索----- class_
通过 class_ 参数搜索有指定CSS类名的tag(可简写):
soup.find_all(“a”, “sister”) #class_=“sister”
tag的 class 属性是 多值属性 .按照CSS类名搜索tag时,可以分别搜索tag中的每个CSS类名:
例如


在这里插入图片描述
在这里插入图片描述
css_soup = BeautifulSoup(‘

’)
css_soup.find_all(“p”, class_=“strikeout”)
css_soup.find_all(“p”, class_=“body”)
搜索 class 属性时也可以通过CSS值完全匹配:
css_soup.find_all(“p”, class_=“body strikeout”)
3> 文档字符串内容搜索——string
soup.find_all(string=[“Tillie”, “Elsie”, “Lacie”])
# [u’Elsie’, u’Lacie’, u’Tillie’]
soup.find_all(string=re.compile(“Dormouse”))
[u"The Dormouse’s story", u"The Dormouse’s story"]
string 还可以与其它参数混合使用来过滤tag.
下面代码用来搜索内容里面包含“Elsie”的标签
soup.find_all(“a”, string=“Elsie”)
# [ Elsie]
4> 限定直接子节点——recursive
调用tag的 find_all() 方法时,Beautiful Soup会检索当前tag的所有子孙节点,如果只想搜索tag的直接子节点,可以使用参数 recursive=False
备注soup.find_all(“a”) 等同于soup(“a”)

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

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

相关文章

Linux网络基础 — 网络层

目录 IP协议 IP协议报头格式 网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公网IP地址 路由 补充 网络层 在复杂的环境中确定一个合适的路径。 IP协议 ip具有将数据从 主机A 跨网络送到 主机B 的能力。 主机: 配有IP地址,但是不进行路由控制的设备…

AI实时交互和实时动捕驱动数字人各有何优势?企业该怎么选择?

在元宇宙时代下 虚拟数字人作为虚拟偶像、虚拟代言人 数字员工、虚拟主播等身份 逐渐出现于大众视野 品牌通过虚拟数字人 实现跨领域、跨圈层营销 虚拟数字人 到底是什么? 是企业赋予品牌的一个可视化虚拟形象 是通过长时间的经营,可以形成品牌资…

6!Xshell全版本密码一键恢复工具

工具介绍 Xshell全版本凭证一键恢复工具,针对Xshell全版本在本地保存的密码进行解密,包括最新的7系列版本,可自动寻找或指定Sessions路径。 关注【Hack分享吧】公众号,回复关键字【230608】获取下载链接 .\SharpXDecrypt.exe .\S…

西安丨高时空分辨率、高精度一体化预测技术之风、光、水能源自动化预测技术应用

目录 ​第一章 预测平台讲解及安装 第二章 一体化预测工具详解与数据获取及制备 第三章 风资源预测自动化技术 第四章 太阳能资源自动化预测技术 第五章 水资源自动化预测技术 第六章 后处理自动化技术 更多推荐 能源是国民经济发展和人民生活必须的重要物质基础。在过去…

怎样监控员工电脑在做什么?

随着科技的不断发展,越来越多的企业开始关注员工的工作效率和安全问题。为了确保员工的工作质量和保护企业的利益,监控员工的电脑屏幕成为一种常见的管理手段。 监控员工的电脑屏幕是一种现在大部分企业常见的管理手段,可以通过使用洞察眼MIT…

行业追踪,2023-07-17,静待减速器macd反转

自动复盘 2023-07-17 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

Ubuntu查找并安装指定版本包

命令如下: #查看指定包信息 apt-cache show kubeadm | grep 1.23.2 #安装指定版本 apt-get install kubeadm1.23.2-00

前端权限管理

一、概念 前端所谓的权限管理就是我们需要根据用户的角色不同来展示不同的内容,如下图所示: 超级管理员: vip会员: 游客: 像上面这样,根据用户的不同来展示不同的菜单栏。 二、实现思路 首先用户输入…

3GPP 中 规定V2X方案的性能要求

目录 1. 编队要求 2.高级驾驶性能要求 3.扩展传感器性能要求 4..远程驾驶性能要求 本文主要总结是将3GPP规定的V2X方案的性能要求,以做了解和参考。节选自5G核心网规划与应用 吴成林等编著,侵删。 1. 编队要求 (1)3GPP系统应…

【Linux】多线程(一)

文章目录 线程的概念线程优点线程缺点线程异常线程用途线程分离局部变量和全局变量互斥锁对锁的封装代码互斥量的接口互斥量实现原理探究可重入VS线程安全概念常见的线程不安全的情况 常见的线程安全的情况常见不可重入的情况常见可重入的情况可重入与线程安全联系可重入与线程…

「流失订单召回」AI功能上线,助力企业高效挽回潜客!

据QuestMobile《2020年第三季度中国移动互联网行业数据监测报告》统计,国内用户将商品放入购物车但最终未购买的情况占比高达69.8%,这无异是品牌业务的重大损失点。 用户将商品加入购物车代表着他们有一定的购买意向,但是被“遗弃”也意味着…

Jenkins极简体验

做研发运营一体化(或者说运维)的人员,对Jenkins一定不陌生。 这个工具在CI/CD链条中充当了大内总管的角色 很多时候,我们喜欢用抽象的概念描述一个东西。本来简简单单的一个工具或者一个软件甚至一个系统,往往被冠以各…

【Vue】day01-Vue基础入门

目录 day01 一、为什么要学习Vue 二、什么是Vue 1.什么是构建用户界面 2.什么是渐进式 Vue的两种开发方式: 3.什么是框架 总结:什么是Vue? 三、创建Vue实例 四、插值表达式 {{}} 1.作用:利用表达式进行插值&#xff0c…

python接口自动化(三十九)- logger 日志 - 上(超详解)

简介 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以…

给自己工作的箴言

箴言 目录概述需求: 设计思路实现思路分析工作箴言 性能参数测试: Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.…

QT程序运行时依赖设置

本文主要解决Qt程序运行时容易遇到的两个问题: 找不到相关的Qt6Core.dll、Qt6Widgets.dll等库 这种情况下,把相关DLL所在目录添加到系统的环境变量 PATH 中,就可以了。 无法导入Qt相关的插件: qt.qpa.plugin: Could not find th…

高效的实时聊天利器:揭秘三个绝佳的网站聊天插件

实时聊天是连接用户与网站之间的纽带。传统的聊天方式已经逐渐不够满足用户的需求,如果不能快速跟用户交流以及快速解决用户问题,用户就容易跑掉,而网站聊天插件正好是实现实时聊天的必备工具。许多电子商务平台和网站都需要在聊天插件加持下…

[USACO06DEC] Milk Patterns G

目录 1.题目 2.思路 1.字典树(trie 树) 2.hash(正解) 1.有注释版 2. copy 版 3.后文 1.题目 Farmer John has noticed that the quality of milk given by his cows varies from day to day. On further investigation, he discovered that although he cant predict t…

【洛谷】P2004 领地选择(二维前缀和)

二维前缀和模板啦&#xff0c;家人们&#xff0c;一眼出 pos:&#xff08;up自己犯的错误&#xff0c;记录一下&#xff0c;也提醒大家&#xff09; x1<n-c1(1哦) y1<m-c1 x2x1c-1(-1哦) y2y1c-1 okk,上&#xff01; ACcode: #include<bits/stdc.h> using na…

C/C++封装:Windows/Linux下封装.lib/.so文件

C/C TCP/IP通信函数 这里提供了两个C/C中服务器与客户端之间通讯的两个程序&#xff0c;程序中封装了通信之间的函数方法&#xff0c;我们以这个程序为例进行封装。 文件目录结构按照C/C标准开源项目进行存放&#xff1a; ├─bin ├─doc ├─lib └─src├─xsocket│ │ …