Ошибка, которую вы получаете, когда попытка загрузки происходит из-за того, что вызов urllib
является совершенно новым сеансом для их сервера - у него нет файлов cookie и аутентификации, которые использует ваш браузер. Например. это так же, как если бы вы открыли режим инкогнито в браузере и вставили в адресную строку атрибут src - для сервера вы новый клиент, который не заполнил форму, вошел в систему и т. д.
Возможно, вы захотите попробовать что-нибудь еще - в сеансе селен / браузер, сделав снимок экрана только с элементом <img>
. Эта операция с переменным успехом, например, в Chrome добавлена поддержка только недавно, а в некоторых ситуациях она не срабатывает:
found = browser.find_element_by_css_selector('img[alt="labelImage"]')
try:
found.screenshot('element.png')
except Exception as ex: # FIXME: anti-pattern - I don't recall the exact exception - when you run the code, change it to the proper one
print('The correct exception is {}'.format(ex))
browser.get_screenshot_as_file('page.png')
Если сделать скриншот элемента не удастся, вы получите одну целую страницу, которую затем можете обрезать до элемента.