Python学习笔记 | 爬虫案例之批量爬取图片并保存到本地文件
off999 2024-12-01 02:17 25 浏览 0 评论
【前言】本案例的爬虫代码非常简单,主要是为了演示如何将网络图片保存到本地文件,同时改变一下思路,针对由域名后面加数字构成的分页URL地址,例如:http://www.aaa.com/page_1等,可以直接采取列表推导式的形式批量生成url列表,然后循环爬取即可。
一、预期目标
批量爬取图片网页上面的图片,并保存到本地文件。注意,本案例爬取的图片都是网页中的索引图片,并非原始大图,只为了演示编程思路。
网页地址:https://pic.netbian.com/4kmeinv/index_2.html
二、编程思路
- 本案例网页页面构成很简单,可以直接使用bs4模块的find_all()方法查找img标签获取所有包含图片url的内容
- 该网页使用的是gbk数据集,因此需要在代码中指定requests模块实例对象的编码为gbk
- 想要爬取的图片url中都包含uploads关键字,其它图片url中没有,因此可以通过这一点进行url过滤
- 获取到图片的完整url之后,可以使用requests模块请求到图片的内容
- 使用os模块的basename()方法获取图片url最后面的文件名部分,作为本地文件的文件名
- 使用requests实例对象的content属性获取图片的二进制内容,再使用‘wb’参数写入到本地文件。注意,这里不能使用requests实例对象的text属性获取图片内容
三、实例代码
import os
import requests
from bs4 import BeautifulSoup
# 获取一个url的html内容函数
def get_html(url):
resp = requests.get(url)
resp.encoding = 'gbk'
return resp.text
# 下载一个html文本里包含图片的函数
def download_img(html):
soup = BeautifulSoup(html, 'html.parser')
imgs = soup.find_all('img')
for img in imgs:
src = 'https://pic.netbian.com' + img['src']
# 过滤不包含uploads的url
if 'uploads' not in src:
continue
print(f'正在爬取:{src}...')
# 取图片url后面部分作为本地存储的文件名
filename = os.path.basename(src)
with open(f'美女图片/{filename}', 'wb') as wfile:
resp_img = requests.get(src)
wfile.write(resp_img.content) # 存储图片即写入二进制数据,需要使用content获取二进制内容
if __name__ == '__main__':
# 使用列表推导式的形式获取10页的url地址
urls = [f'https://pic.netbian.com/4kmeinv/index_{page}.html' for page in range(2, 12)]
for url in urls:
html = get_html(url) # 调用自定义函数获取html内容
download_img(html) # 调用自定义函数下载保存html内容中包含的图片相关推荐
-
- 下载设置到手机上(手机设置下载到桌面上)
-
1.打开手机的“设置”图标。2.进入设置页面,滑动手机屏幕,找到“桌面、锁屏与息屏”选项并点击。3.进入新页面,滑动手机屏幕找到“添加应用到主屏幕”选项,此时该选项右侧的按钮为关闭状态。4.点击一下“添加应用到主屏幕”选项右侧的按钮,按钮点...
-
2026-01-12 03:03 off999
- 如何连接打印机网络共享(打印机如何通过网络共享)
-
打印机设置共享打印的操作步骤一、在连接打印机的电脑上依次点击“开始“菜单-”设置“-”打印机“,打开打印机界面后右键单击“打印机”图标点击到“共享”选项界面接着点击“共享这台打印机”,最后点击“确定”...
- win10自带风扇控制软件(w10风扇管理在哪里)
-
在Windows10系统中,风扇的设置通常是由计算机硬件和BIOS控制的。但是,您也可以使用一些软件工具来调整风扇的设置。以下是一些常用的方法:1.使用BIOS设置:在计算机启动时按下相应的按键(...
- 系统类小说女主文(系统文推荐女主)
-
1、《团宠郡主有系统》2、《绑定才女系统后文躺赢了》 3、《炮灰女配苟成了女主》 4、《在暴君身边卑微求生》 5、《师徒恋文里的反派非要和我HE》6、《穿成反派男主极品娘...
- 视频下载网站免费(视频下载网站免费mp3)
-
1.ITunesMovieTrailers苹果的预告片库,库中影片的画质都很不错,基本上覆盖了当前的主流电影,以美国电影居多,国内的片子比较少,如果需要从中下载,那么下载时需要配合浏览器的资源嗅探...
-
- 电脑下划线符号怎么打(电脑上那个下划线怎么打)
-
1、下划线的输入方法为英文输入法状态下,Shift+“-”输入。2、上划线需要借助特殊的输入法或是直接使用Word插入符号,这里介绍Word方法,首先打开Word,然后点击“插入”。3、在插入栏内点击“符号”,弹出的菜单中点击“其它符号”。...
-
2026-01-12 00:03 off999
- win+f是什么快捷键(快捷键win+l是那个键)
-
Win+E:打开我的电脑Win+F:搜索文件Win+D:显示桌面Win+M:最小化所有窗口Win+Pause:显示系统属性对话框Win+L:锁定您的计算机或切换用户Win+R:打开运行对话...
- 搜狗浏览器app下载(搜狗浏览器app下载安卓版)
-
试试在地址栏右边切换浏览模式,改成兼容。ACTIVX插件是IE的专利,搜狗兼容模式是调用IE,高速模式是CHROME核心。在搜狗浏览器右上角菜单-工具-选项-查看下主页设置是否是你想要的。导航类以ht...
- 手机p图修改替换数字(手机截图怎么修改数字)
-
首先打开手机屏幕,在手机界面找到【美图秀秀】软件,点击打开进入,进入美图秀秀后,选择【图片美化】,在弹出的手机相册中,选择并打开所需截图;在下方选项中找到【消除笔】,放大截图,消除需要更改的数字,消...
- 无internet访问权限怎么解决win7
-
1、按【Win】键,或点击左下角的【开始菜单】,在打开的菜单项中,选择【控制面板(control)】。2、网卡驱动状态如果出现问题,会显示感叹号,如果没有出现问题,就不会有任何提示。右键点击【网卡驱动...
- 硬盘序列号格式(硬盘序列号格式例子)
-
1、TXT格式:txt是微软在操作系统上附带的一种文本格式,是最常见的一种文件格式,早在DOS时代应用就很多,主要存文本信息,即为文字信息,现在的操作系统大多使用记事本等程序保存,大多数软件可以查看...
- 小米平板1(小米平板1刷安卓10稳定版)
-
小米平板1有开发版。具体来说,小米平板1最初发布时,已经提供了一套完整的ROM(即”MIUI“系统)供用户使用,这套系统包含了越来越多的功能,以满足用户的需求。同时,小米也会发布一些针对开发人员的版本...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
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)
