目录
数据准备:
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文件夹内