鱼C论坛

 找回密码
 立即注册
查看: 2289|回复: 3

爬虫文件写入问题求解

[复制链接]
发表于 2023-11-18 21:16:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
爬取的网页有很多名字一样的图片,怎么将这些名字一样的图片也保存在文件中
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-18 21:16:19 | 显示全部楼层
你可以在保存图片的时候,为每个图片文件命名时添加一个唯一的标识符,比如图片的URL链接中的一部分、图片的哈希值、或者是一个自增的数字。这样可以确保即使有多个名字相同的图片,它们在文件系统中的名字是唯一的,不会发生重复覆盖的情况。这样你就可以将这些名字相同的图片都保存下来了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-18 21:18:28 | 显示全部楼层
问题:爬取的网页有很多名字一样的图片,怎么将这些名字一样的图片也保存在文件中?

如果你要保存多个同名的图片,可以在保存的文件名中添加一个唯一的标识符,以避免重复的文件名导致文件覆盖。以下是一个示例代码,演示了如何在保存图片时添加唯一标识符:
  1. import requests
  2. import os
  3. # 假设这里有一个包含多个同名图片链接的列表
  4. image_urls = [
  5.     'http://example.com/image.jpg',
  6.     'http://example.com/image.jpg',
  7.     'http://example.com/image.jpg'
  8. ]
  9. # 创建一个文件夹来保存图片
  10. folder_name = 'images'
  11. os.makedirs(folder_name, exist_ok=True)
  12. for url in image_urls:
  13.     response = requests.get(url)
  14.     # 获取文件名(不含扩展名)
  15.     filename = os.path.splitext(os.path.basename(url))[0]
  16.     # 获取文件扩展名
  17.     extension = os.path.splitext(os.path.basename(url))[1]
  18.     # 使用时间戳生成唯一标识符
  19.     timestamp = str(int(time.time() * 1000))
  20.     # 拼接文件名
  21.     filename = f'{filename}_{timestamp}{extension}'
  22.     # 拼接保存路径
  23.     save_path = os.path.join(folder_name, filename)
  24.     with open(save_path, 'wb') as file:
  25.         file.write(response.content)
  26.         print(f'Saved image {filename} in {folder_name}')
复制代码

在上面的示例中,我们首先创建了一个名为images的文件夹来保存图片。然后,对于每个图片链接,我们提取了文件名和文件扩展名,并使用时间戳生成一个唯一的标识符。最后,我们将文件名、标识符和扩展名拼接在一起,形成最终的文件名。通过这种方式,即使有多个同名的图片,它们也会以不同的文件名保存在images文件夹中。

希望这个示例对你有帮助!如果还有其他问题,请随时提问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-18 21:40:16 | 显示全部楼层
楼上正解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-24 09:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表