目录

第一步 导包

第二步 发起请求,设置编码格式

第三步 调用etree和xpath方法转换数据

第四步 用for循环和zip函数把图片保存到文件夹里


数据准备:

1、安装好request库,lxml库

2、URL地址:

http://www.netbian.com/mei/index_2.htm

3、数据要存放的文件夹位置(注意每个人放的不一样,下面是我放的位置)

D:\code\photo

步骤及具体代码如下:

第一步 导包

# 导包
import requests
from lxml import etree

第二步 发起请求,设置编码格式

设置编码格式的目的是把r.text的内容变为汉字展示。 到这一步可以执行看一下,确认r.text内容里没有乱码。 如果出现乱码,就需要修改成其他编码格式。

# 发送请求
url='http://www.netbian.com/mei/index_2.htm'
my_get=requests.get(url,headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'})
# my_get=requests.get(url)
my_get.encoding='gbk'  # 汉字
print(my_get.text)

第三步 调用etree和xpath方法转换数据

到这一步执行看一下,转换的数据是否符合预期

# 将网页内容转换为xpath可解析的对象
xp = etree.HTML(my_get.text)
img_urls = xp.xpath('//ul/li/a/img/@src')  # 图片的URL地址
img_names = xp.xpath('//ul/li/a/img/@alt')  # 图片的名字
print(img_urls)
print(img_names)

第四步 用for循环和zip函数把图片保存到文件夹里

zip( )函数可以把多个可迭代对象打包成元组

# 使用zip函数将每个图片的URL和名称配对
for u,n in zip(img_urls,img_names):
    print(f'正在下载:图片名:{n}')
    img_resp=requests.get(u,headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'})
    with open(f'd:/code/photo/img_f/{n}.jpg','wb') as f:
        f.write(img_resp.content)

最后看一下代码执行的效果

photo文件夹内

参考文章:【小白必看】Python爬虫实战之批量下载女神图片并保存到本地_批量爬图并下载-CSDN博客

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐