Вы проверили, что ваш код ответа - 200?
img = driver.find_element_by_xpath('/html/body/div/div[2]/div[2]/img')
src = img.get_attribute('src')
print(src)
r = requests.get(src)
if r.ok:
time.sleep(5)
with open ('teste2.gif', 'wb') as outfile:
outfile.write(r.content)
else:
print(r)
Это может быть проблема заголовка в вашем запросе на получение.
headers = {'User-Agent': 'Mozilla/5.0'}
Ваш новый код:
img = driver.find_element_by_xpath('/html/body/div/div[2]/div[2]/img')
src = img.get_attribute('src')
print(src)
headers = {'User-Agent': 'Mozilla/5.0'}
r = requests.get(src, headers=headers)
if r.ok:
time.sleep(5)
with open ('teste2.gif', 'wb') as outfile:
outfile.write(r.content)
else:
print(r)
Я немного изменил ваш код:
from selenium import webdriver
import time
from pathlib import Path
import requests
link = 'https://sintegre.ons.org.br/sites/9/38/paginas/produtos-dinamicos/meteorologia.aspx'
chromedriver = r'C:\chromedriver'
pasta_download = Path(r'C:\download')
dados_login = {
'login_usuario': 'XXXXXX',
'login_senha': 'XXXXXXX'
}
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
prefs = {"profile.default_content_settings.popups": 0,
"download.default_directory": pasta_download,
"directory_upgrade": True,
'excludeSwitches': ['enable-logging']}
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(executable_path=chromedriver, chrome_options=options)
driver.get(link)
driver.find_element_by_id('username').send_keys(dados_login['login_usuario'])
driver.find_element_by_name('submit.IdentificarUsuario').click()
time.sleep(5)
driver.find_element_by_id('password').send_keys(dados_login['login_senha'])
driver.find_element_by_name('submit.Signin').click()
time.sleep(5)
met_UL = driver.find_element_by_id('listaMeteorologia_703765c5')
met_list = met_UL.find_elements_by_tag_name("li")
for items2 in met_list:
if items2.text == 'Previsão de Precipitação':
items2.click()
time.sleep(5)
ETA = driver.find_elements_by_tag_name('h3')
for items3 in ETA:
print(items3.text)
if items3.text == 'ETA':
brasil = driver.find_element_by_link_text('Brasil').click()
img = driver.find_element_by_xpath('/html/body/div/div[2]/div[2]/img')
src = img.get_attribute('src')
print(src)
cookies = driver.get_cookies()
s = requests.Session()
for c in cookies:
s.cookies.set(c['name'], c['value'])
headers = {'User-Agent': 'Mozilla/5.0'}
r = s.get(src, headers=headers)
time.sleep(5)
print('status code: ', r.status_code)
with open('teste2.gif', 'wb') as outfile:
outfile.write(r.content)
driver.quit()
Новые строки в коде:
cookies = driver.get_cookies()
s = requests.Session()
for c in cookies:
s.cookies.set(c['name'], c['value'])
и заменены
r = requests.get(src, headers=headers)
на сеанс запросов, который я начал раньше
r = s.get(src, headers=headers)
Прочтите мой комментарий к