我正在从使用Selenium Web驱动程序废弃的页面中获取图像列表。
每页有n
张图片,每张图片都有3个变体(缩略图,平移,完整)。
因此,我创建了列表,其中每个列表项都是包含所有3个版本的图像的字典:
advert_image_dict.append({
'Image_thumb_100x75:': img,
'Image_hoved_400x300:': image_hoved,
'Image_full_800x600:': image_full})
因此单个列表项如下所示:
print(image_dict[1])
{'Image_thumb_100x75:':
'https://cache.mysite.com/mmo/7/295/170/227_-64694801_thumb.jpg',
'Image_hoved_400x300:':
'https://cache.mysite.com/mmo/7/295/170/227_-64694801_hoved.jpg',
'Image_full_800x600:':
'https://cache.mysite.com/mmo/7/295/170/227_-64694801.jpg'}
我需要为每个剪贴的网页创建一个文件夹,其中将包含该页面的所有图像。
文件夹名称的格式如下:{Page_#x}{Title of page}
并且每个文件夹都包含从该页面获取的图像。
图片名称采用以下格式:
{Title of page}{Image_#x}{image_dict[x].get('Image_thumb_100x75')}
{Title of page}{Image_#x}{image_dict[x].get('Image_hoved_400x300')}
{Title of page}{Image_#x}{image_dict[x].get('Image_full_800x600')}
{Title of page}{Image_#x+1}{image_dict[x+1].get('Image_thumb_100x75')}
{Title of page}{Image_#x+1}{image_dict[x+1].get('Image_hoved_400x300')}
{Title of page}{Image_#x+1}{image_dict[x+1].get('Image_full_800x600')}
变量ad_title
拥有标题(我将删除空格和其他字符)。
我会每页创建一个文件夹
path = "/test/`{Page_#x}{Title of page}"
os.mkdir(path)
并使用
获取该文件夹中的单个图像urllib.urlretrieve("https://cache.mysite.com/mmo/7/295/170/227_-64694801_thumb.jpg", "{Title of page}{Image_#x}{image_dict[x].get('Image_thumb_100x75')}")
我只是不知道如何为文件夹和图像名称定义此访存/定义名称迭代器。
答案 0 :(得分:1)
简单的字符串格式似乎可以为您提供帮助。
要构建文件夹的名称和路径,可以使用:
import os
page_num = 22
page_title = 'something'
dir_name = '{}{}'.format(page_num, page_title)
dir_full_path = os.path.join('/', 'test', dir_name)
要构建图像文件的名称,您可以尝试:
advert_image_list = [
{
'Image_thumb_100x75:': 'https://cache.mysite.com/mmo/7/295/170/227_-64694801_thumb.jpg',
'Image_hoved_400x300:': 'https://cache.mysite.com/mmo/7/295/170/227_-64694801_hoved.jpg',
'Image_full_800x600:': 'https://cache.mysite.com/mmo/7/295/170/227_-64694801.jpg',
},
...
]
for i, d in enumerate(advert_image_list):
file_name_1 = '{}{}{}'.format(page_title, i, d['Image_thumb_100x75'])
file_name_2 = '{}{}{}'.format(page_title, i, d['Image_hoved_400x300'])
file_name_3 = '{}{}{}'.format(page_title, i, d['Image_full_800x600'])
这对您有帮助吗?