要遍历一个URL以保存未知数量的图片,可以使用Python的requests和BeautifulSoup库来实现。下面是一个示例代码:
import requests
from bs4 import BeautifulSoup
import os
def save_images_from_url(url):
# 发送GET请求获取HTML内容
response = requests.get(url)
html = response.text
# 解析HTML内容
soup = BeautifulSoup(html, 'html.parser')
# 找到所有的图片标签
img_tags = soup.find_all('img')
# 创建保存图片的文件夹
folder_name = 'images'
if not os.path.exists(folder_name):
os.makedirs(folder_name)
# 保存图片
for img in img_tags:
img_url = img['src']
img_name = img_url.split('/')[-1]
img_path = os.path.join(folder_name, img_name)
# 发送GET请求下载图片
img_data = requests.get(img_url).content
# 保存图片到本地
with open(img_path, 'wb') as f:
f.write(img_data)
print(f"保存图片 {img_name} 成功")
# 示例用法
url = 'https://example.com'
save_images_from_url(url)
上面的代码会从给定的URL中获取HTML内容,并使用BeautifulSoup解析HTML。然后,它会找到所有的图片标签,并使用requests库发送GET请求下载每个图片,并将其保存到本地。最后,它会在控制台输出每个图片的保存结果。
请注意,这只是一个简单的示例,实际的情况可能会更复杂。例如,有些网站可能会在图片URL中添加额外的参数,或者有些图片可能没有正确的文件扩展名。你可能需要根据具体情况进行适当的调整和处理。