首页 > 解决方案 > 使用 Python 抓取时如何在每个图像名称的末尾添加文本

问题描述

我正在从一个网站下载四张图片。我希望将每个图像命名为 SKU,然后是 (1)、(2) 等。

我已经设法编写代码来下载每个文件,但是它当前正在覆盖每个文件,因为它们的名称都相同。

我需要在我的代码中做什么才能使每个代码的末尾都有数字?

for image in images:
    if(image.get('src').startswith('https://imageapi.partsdb.com.au/api/Image')):
        link = (image.get('src'))
        name = soup.find("div",{"class":"head2BR"}).text
        with open(name + '.jpg','wb') as f:
            im = requests.get(link) 
            f.write(im.content)
            print('Writing:', name)

标签: pythonimagebeautifulsoupscreen-scraping

解决方案


您可以使用内置enumerate()函数 - 这将产生项目及其索引。

for index, image in enumerate(images, start=1):
    if(image.get('src').startswith('https://imageapi.partsdb.com.au/api/Image')):
        link = (image.get('src'))
        name = f'{soup.find("div", {"class": "head2BR"}).text} ({index})'

        with open(name + '.jpg','wb') as f:
            im = requests.get(link) 
            f.write(im.content)
            print('Writing:', name)

推荐阅读