|
发表于 2023-11-18 21:18:28
|
显示全部楼层
问题:爬取的网页有很多名字一样的图片,怎么将这些名字一样的图片也保存在文件中?
如果你要保存多个同名的图片,可以在保存的文件名中添加一个唯一的标识符,以避免重复的文件名导致文件覆盖。以下是一个示例代码,演示了如何在保存图片时添加唯一标识符:
- import requests
- import os
- # 假设这里有一个包含多个同名图片链接的列表
- image_urls = [
- 'http://example.com/image.jpg',
- 'http://example.com/image.jpg',
- 'http://example.com/image.jpg'
- ]
- # 创建一个文件夹来保存图片
- folder_name = 'images'
- os.makedirs(folder_name, exist_ok=True)
- for url in image_urls:
- response = requests.get(url)
- # 获取文件名(不含扩展名)
- filename = os.path.splitext(os.path.basename(url))[0]
- # 获取文件扩展名
- extension = os.path.splitext(os.path.basename(url))[1]
- # 使用时间戳生成唯一标识符
- timestamp = str(int(time.time() * 1000))
- # 拼接文件名
- filename = f'{filename}_{timestamp}{extension}'
- # 拼接保存路径
- save_path = os.path.join(folder_name, filename)
- with open(save_path, 'wb') as file:
- file.write(response.content)
- print(f'Saved image {filename} in {folder_name}')
复制代码
在上面的示例中,我们首先创建了一个名为images的文件夹来保存图片。然后,对于每个图片链接,我们提取了文件名和文件扩展名,并使用时间戳生成一个唯一的标识符。最后,我们将文件名、标识符和扩展名拼接在一起,形成最终的文件名。通过这种方式,即使有多个同名的图片,它们也会以不同的文件名保存在images文件夹中。
希望这个示例对你有帮助!如果还有其他问题,请随时提问。 |
|