Записать страницу, получить изображения и создать папку с изображениями на странице утилизации - PullRequest
1 голос
/ 07 марта 2019

Я получаю список изображений со страниц, удаленных с помощью веб-драйвера selenium. Для каждой страницы есть 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')}")

Я просто не знаю, как определить этот итератор fetch / define-names для папок и имен изображений.

1 Ответ

1 голос
/ 07 марта 2019

Кажется, что здесь может помочь простое форматирование строки.

Чтобы создать имя и путь к папке, вы можете использовать:

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'])

Вам это поможет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...