Загрузите изображение из списка URL-адресов с помощью VBA или Python

Я пытаюсь загрузить некоторые изображения с некоторых URL-адресов. Я проверил загрузку изображений с URL-адреса и переименование

файл загрузки VBA с веб-сайта - всплывающее окно

ПОЛУЧИТЕ изображения по URL-адресу, а затем переименуйте изображение

Загрузить изображение с URL-адреса изображения

Загрузить изображения с URL-адреса Python

Загрузить изображения из списка URL-адресов, но ни один из них не работает.

Мне нужно загрузить их и переименовать, как показано ниже: (лист excel) A2 name C2 link, A3 name C3 link. и т. д.

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

Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64-Bit versions of Excel
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
    Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
    ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

в Вба.

Любая идея по VBA или Python приветствуется.

PS: у меня есть рабочие учетные данные для веб-сайта, поэтому я могу войти на него.

Я также пробовал с wget -i images.txt в терминале, но он загружает некоторые нечитаемые файлы размером 11 КБ.


person Psko    schedule 14.12.2020    source источник
comment
URLDownloadToFileA предназначен для простой загрузки. Вам понадобится элемент управления браузером для обеспечения аутентификации (у меня его нет, извините).   -  person Gustav    schedule 14.12.2020


Ответы (1)


Я использовал VBA для перехода к веб-пути к фотографии и сценарий оболочки для загрузки изображения.

Set wshShell = CreateObject("WScript.Shell")
Do
ret = wshShell.AppActivate("Save Picture")
Loop Until ret = True
WScript.Sleep 500
ret = wshShell.AppActivate("Save Picture")
If ret = True Then
ret = wshShell.AppActivate("Save Picture")
pPath = "C:\Users\user\Desktop\Images\Image1"
imgP = "Image1"
wshShell.SendKeys pPath
WScript.Sleep 1000
wshShell.SendKeys "{ENTER}"
End If
person Psko    schedule 27.01.2021