python批量爬取网络图片
off999 2024-12-03 00:10 26 浏览 0 评论
上篇通过python爬取了一篇网络小说,初步了解了爬虫的四步流程,本文稍微扩展一点,试着从网页中爬取出多个图片,具体来看看:
我们今天试着从下面图1的网页上将所有图片都爬取出来,放在一个指定的文件夹里。
还是按爬虫4流程:发出请求——获得网页——解析内容——保存内容
1、发出请求
1)找到网页地址:
在网页上右键单击“审查元素”,弹窗里选中Network面板,从左侧name列表里逐个选择项目,观察右侧Preview面板下的内容,发现出现下图2中的样式时,就是我们要的第一小步目标。
在图3所示的Headers面板下找到网页地址URL
Request URL:
https://m.gmw.cn/toutiao/2020-02/16/content_123107586.htm?tt_group_id=6793905493262729736
2)找到网页中图片地址:
由于网页上的图片都是有单独网址的,与网页的网址不同,所以我们需要在网页代码里找到图片的网址信息。继续查找Preview面板下的网页代码,图4红框内所示即为网页里插图图片的地址,这就是我们爬取图片真正要用的地址
所以,从网页里批量爬取图片,实际步骤是:
发出请求(网页地址)——获得网页——解析内容(得到图片地址)——向图片地址发出请求(循环)——获得网页——解析内容(得到图片)——保存内容
获得图片地址的代码为:
url = 'https://m.gmw.cn/toutiao/2020-02/16/content_123107586.htm?tt_group_id=6793905493262729736'
rep = requests.get(url)# 发出访问请求,获得响应
res = BeautifulSoup(rep.content, 'lxml')# 解析响应,获得网页内容
img_url = res.find_all('p', style="text-align:center;")# 解析网页内容,获得全部图片网址此时,我们试着检验一下获得的图片地址:
for im in img_url:
jpgurl = im.find('img')['src']
print(jpgurl)结果为图5所示:
2、批量获得网页
在上面的for循环里,向图片地址发生请求:
for im in img_url:
jpgurl = im.find('img')['src']
r = requests.get(jpgurl)3、解析获得图片
由于图片地址里没有其他内容,只有图片,解析很简单:直接取r.content就能得到图片。
for im in img_url:
......
r = requests.get(jpgurl)
jpg = r.content4、保存图片
for im in img_url:
......
jpg = r.content
nam = jpgurl[-23:]# 从图片网址里提取最后23个字符,当图片名称,也可以自己定义,不要重复即可
f = open(set_path() + nam, 'wb')# 从set_path()函数返回一个文件夹路径,与图片名称组合成文件的保存地址
f.write(jpg)# 将图片写入文件set_path()函数返回一个预设保存文件的文件夹,如果预设的文件夹不存在,就自动创建。
def set_path():
path = r'e:/python/jpg'
if not os.path.isdir(path):
os.makedirs(path)
paths = path+'/'
return(paths)运行后打开对应文件夹,图片已经完成下载,如图6:
至此,批量爬取网页图片就完成了。
总结:
本文的爬取过程,比常说的爬虫4步骤多了好几步,其实,本质上还是万变不离其宗的4步流程。本例只不过是相当于把两套爬取流程进行了嵌套,少了一次保存内容的过程而已。关键是通过爬取获得网址后,再次爬取新网址里的内容,真正的爬取大多是通过这种嵌套实现的。
相关推荐
- 海马苹果助手官方下载(海马苹果助手官方正版)
-
除了官方版,苹果其他服务器互通吧好像,只是不能换服务器登录你好;根据你的提示,可能是你的手机系统不正常蚂蚁浏览器,你可以现在一个手机QQ浏览器,它的体积小,功能强大,还特别的节省流量,它使用自主研发的...
- wifi恢复出厂设置后上不了网
-
恢复出厂设置后,路由器的网络设置也被清空了,需要重新设置账号和密码等信息并配置网络。还需要确认路由器的网线连接是否正确,以及是否有其他网络设备干扰。 如果重新配置还是连不上网不能用,可能需要...
- 联想笔记本蓝屏怎么解决(联想笔记本蓝屏怎么解决方法)
-
回答如下:如果您的联想笔记本电脑出现蓝屏问题,可以尝试以下解决方法:1.重启电脑:尝试简单的重启电脑,看是否可以解决问题。2.检查硬件:检查您的笔记本电脑是否有硬件故障。例如,您可以拔下所有外接设...
- 微星显卡型号档次梯队(微星显卡大全)
-
2019年微星新出的显卡主要系列划分:VENTUS(万图师):入门级版本,也有人说是丐版,用料一般。ARMOR(装甲师):中低版本,做工用料主流,比丐版强一点。DUKE(暗黑龙爵):中等版本,做工用料...
- 腾达扩展器a12设置(腾达扩展器设置方法)
-
1、检查扩展器的WiFi是否正确无线扩展器连接的是上端的WiFi,然后再转发出新的WiFi。所以,必须要知道正确的上端WiFi信息,比如WiFi名称和密码。解决方法:用手机连接上端WiFi,登录到这个...
- win7 旗舰版32位密钥(win7旗舰版密钥32位激活不了)
-
可以win7旗舰版32位产品密钥:1、TG664-TJ7YK-2VY3K-4YFY6-BCXF4;2、MVG64-RQDVY-KB9RM-MX9WT-MW824;3、TDTY2-6HJ49-46PCK...
- win7下安装ghostxp(win7安装方法ghost)
-
在win7家庭版电脑中安装虚拟xp系统方法:1.首先安装windows6.1-kb958559-x86-refreshpkg补丁。2.安装完成后,需要重启电脑。3.重启电脑,再安装windowsxpm...
- 电脑怎么锁屏快捷键(暂时离开电脑怎么锁屏快捷键)
-
计算机锁屏的快捷键在不同的操作系统上可能会有所不同,但在Windows系统中通常是“Windows键+L”组合键。当您按下这个组合键时,计算机会立即锁定屏幕,需要输入密码才能解锁。这个快捷键可以方便地...
- microsoft+teams+meeting怎么加入会议
-
teams手机点击加入会议没有反应原因和解决方法如下:1.时区不对,把电脑屏幕右下角时区调整好即可进入TeamsPC版。2.会议主办方的问题。3.MicrosoftTeams客户端的大多数问题都...
- 笔记本怎么设置wifi(笔记本怎么设置wifi密码)
-
笔记本电脑连接无线网络的具体设置步骤如下:1.打开电脑上的无线网络连接功能。在电脑屏幕下方中央区域找到网络连接图标,通常是两个悬挂的屏幕,点击打开。2.在网络连接列表中找到无线选项。一般无线选项图...
- 键盘所有按键都没反应(键盘无反应,鼠标正常)
-
台式机键盘失灵可以按以下四步来解决:1、重新插键盘与主机连接接口。有可能因为接口的接触不良导致的键盘失灵,这时可以对插头进行拔插,注意:如果是USB接口,可以直接插拔,而如果是圆形接头最好关机后再操作...
- 手机win10主题下载(手机windows11主题)
-
前面三位的方法都太复杂,还要找用户名什么。下面软件就搞定了,还可以自动提取Win10主题包里的壁纸。网页链接在软件上右键:一键打开主题目录,一键打开壁纸目录如果要提取主题包里的Win10壁纸,只要把主...
- 手机360助手有用吗
-
360手机助手是一款Android手机应用市场,由著名的安全软件厂商奇虎360公司开发和维护。它提供了丰富的应用程序下载、游戏下载、主题壁纸等资源,并且具备一定的应用管理和手机优化功能。360手机助手...
- 电脑主机频繁启动但启动不了
-
这个情况有可能是内存条换了,我上次就是这个情况,不知道怎么把内存条给烧了,然后它一給它插上电源就反复重启,刚一打开就自己又关上了反反复复。还有一次是因为这个电脑主机的电源插座的线换了,那个插头的口给烧...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
