抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

有小伙伴反馈说侧边栏随机图出现了重复,有些审美疲劳,要求杜老师再更新一些图片,正好聊天广场有小伙伴分享了一个美图的网址。本文分享如何使用 Python 脚本下载指定网页的图片文件,需要的小伙伴可以参考文中代码。

代码需求

使用 Python 的语言编写一个脚本,下载指定网址中包含的多种格式图片文件,如 JPG 和 PNG 格式图片。

将图片保存至指定的目录中,可以指定绝对路径,或者相对路径。

并用随机数重命名,防止同名图片触发覆盖事件。

尽可能使用 Python 的标准库,尽量避免使用第三方库。

变更解释

  1. 导入必要的库:包括 os/requests/re 以及 random

  2. 定义函数:download_images 函数可用于下载图片;

  3. 获取图片链接:使用正则表达式从网页内容中提取图片 URL;

  4. 下载保存图片:使用 requests 库下载图片,并且使用 random 库生成随机数作为文件名;

  5. 指定目录:确保保存目录存在,如果不存在则创建;

  6. 获取内容:使用 requests 库获取网页内容。

功能代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import os
import requests
import re
import random

def download_images(url, save_folder):
# 确保保存目录存在
if not os.path.exists(save_folder):
os.makedirs(save_folder)

# 发送HTTP请求获取网页内容
response = requests.get(url)
if response.status_code != 200:
print(f"Failed to retrieve the webpage. Status code: {response.status_code}")
return

# 使用正则表达式查找所有的图片URL
image_urls = re.findall(r'<img[^>]+src=["\'](.*?)["\']', response.text)

for img_url in image_urls:
# 处理相对路径的URL
if not img_url.startswith(('http://', 'https://')):
img_url = os.path.join(url, img_url)

# 下载图片
img_response = requests.get(img_url)
if img_response.status_code == 200:
# 生成随机文件名
random_filename = f"{random.randint(10000, 99999)}.jpg"
save_path = os.path.join(save_folder, random_filename)

# 保存图片
with open(save_path, 'wb') as f:
f.write(img_response.content)
print(f"Downloaded and saved {img_url} as {save_path}")
else:
print(f"Failed to download {img_url}. Status code: {img_response.status_code}")

# 读取网址列表文件
def read_urls_from_file(file_path):
with open(file_path, 'r') as file:
urls = file.readlines()
return [url.strip() for url in urls]

# 示例调用
if __name__ == "__main__":
urls_file = 'f:\\代码\\urls.txt' # 包含网址的文件路径
save_folder = 'f:\\代码\\images' # 保存图片的目录路径

urls = read_urls_from_file(urls_file)
for url in urls:
download_images(url, save_folder)

注意:本示例代码仅适用于 Python 3.x 版本,运行于 Windows 系统。如使用 Linux 系统,可能需要进行相应修改。

使用说明

将上述的代码保存为 download_images.py 文件。

在运行脚本时,传入目标网页的 URL 和保存图片的目录路径。

脚本会自动下载网页中所有图片,并且以随机数命名保存到指定目录中。

打开的网址保存在一个文件,每行一个网址。

评论