Загрузить изображения в определенную папку Selenium Python

У меня проблема с этой строкой кода, которую я пишу. По сути, он берет URL-адрес изображения или видео из нескольких постов в Instagram и загружает их один за другим с именем «name0.png», «name1.png», «name2.png» и т. д., а затем показывает все имена.

Моя единственная проблема в том, что он загружает их только в папку, где находится мой код, но я хочу отправить их по определенному пути.

Код выглядит следующим образом:

def save_images(name,posts):

    print("Downloading Images....")

    pngnames = []

    i = 1

    #Load each post
    for post in posts:
        pngname = str(name)+str(i)+'.png'
        driver.get(post)
        wait = WebDriverWait(driver,6).until(EC.presence_of_element_located((By.CSS_SELECTOR,'#react-root > section > main > div > div.ltEKP > article > div > div.qF0y9.Igw0E.IwRSH.eGOV_._4EzTm > div > div > section.ltpMr.Slqrh > span._15y0l > button > div.QBdPU.B58H7 > svg > path')))

        image = '#react-root > section > main > div > div > article > div > div._97aPb.wKWK0 > div > div > div.KL4Bh > img'
        images = '#react-root > section > main > div > div.ltEKP > article > div > div._97aPb.wKWK0 > div > div.pR7Pc > div.qF0y9.Igw0E.IwRSH.eGOV_._4EzTm.O1flK.D8xaz.fm1AK.TxciK.yiMZG > div > div > div > ul > li:nth-child(2) > div > div > div > div.KL4Bh > img'
        video = '#react-root > section > main > div > div.ltEKP > article > div > div._97aPb.wKWK0 > div > div > div > div > div > video'
        #Get source URL of post
        if driver.find_elements(By.CSS_SELECTOR,image):
            downloadUrl = driver.find_element(By.CSS_SELECTOR,image)
        elif driver.find_elements(By.CSS_SELECTOR,video):
            downloadUrl = driver.find_element(By.CSS_SELECTOR, video)
        elif driver.find_elements(By.CSS_SELECTOR,images):
            downloadUrl = driver.find_element(By.CSS_SELECTOR,images)
        else:
            print("Couldnt get post url.")
            continue


        with open(pngname, 'wb') as file:
            file.write(downloadUrl.screenshot_as_png)

        i=i+1
        pngnames.append(pngname)


    return pngnames

Что я должен добавить, чтобы он отправил эти загруженные файлы в определенную папку?

'

Вы можете определить pngname как хотите, включая путь к любой папке.

mcsoini 06.04.2022 19:19

Можете ли вы написать мне пример?

Olti R 06.04.2022 19:25
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете определить pngname как хотите, включая путь к любой папке. os.path — ваш друг при создании путей и управлении ими. Обратите внимание, что каталог должен существовать, иначе будет выдано сообщение об ошибке.

import os

path = "C:/Users/myself/Documents"
pngname = "myfile"

with open(os.path.join(path, pngname), 'wb') as f:
    ...

Другие вопросы по теме