Python写入功能未保存所有图像

时间:2018-10-04 19:33:46

标签: python python-3.x save-image

我正在尝试从超链接(example)下载图像。为此,我使用以下功能:

def download_logos(lst):
  image_url = lst[1]
  img_data = requests.get(image_url).content
  df.append([lst[0], img_data, lst[2]])
  filename = 'logos/{}/{}.png'.format(lst[2], lst[0])
  os.makedirs(os.path.dirname(filename), exist_ok = True)
  with open(filename, 'wb') as f:
     f.write(img_data)

变量lst是矩阵中的一行,其中包括团队名称,图像的链接以及团队参加的比赛。当对我所有的数据(543个团队)运行此功能时,似乎只下载了200-300张图像会跳过很多图像。

要查看脚本是否无法访问链接和下载图像数据是否有问题,我尝试分两个步骤执行操作,即首先下载所有团队的图像数据,然后将数据保存到磁盘。令我惊讶的是,所有543个团队都存在图像数据,因此当我尝试保存数据时,我希望所有图像都存在。令我惊讶的是,这次保存了大约500张图像,这仍然是一个改进。

我无法找出可能导致此问题的原因,因此我希望有人可以指出我在哪里犯了错误和/或如何解决该问题。

1 个答案:

答案 0 :(得分:0)

我设法找到了与我的下载功能无关的问题。我发现从网页检索下载链接的方式不正确,导致我最终出现重复。由于我将图像链接限制为前x个条目,因此之后我丢失了图像链接。重写检索链接的函数以消除重复项并正确检索链接,从而解决了该问题,这使我可以使用上面定义的函数来下载和保存图像。