Форум сайта python.su
Здравствуйте!
При скачивании загружается пустая страница ошибка 403 сервера, при открытии с браузера ОК.
import datetime, requests
date = (datetime.datetime.today()- datetime.timedelta(days=2)).strftime(“%Y%m%d”)
EUR_L="https://www.cmegroup.com/CmeWS/exp/voiProductDetailsViewExport.ctl?media=xls&tradeDate=“+date+”&reportType=“+RT+”&productId=58“
EUR = requests.get(EUR_L,headers={'User-Agent': ‘Mozilla/5.0’})
with open(output_path +”EUR.xls", ‘wb’) as f: f.write(EUR.content)
Офлайн
Ссылку точную напиши без всякого кода.
Офлайн
Офлайн
Для начала исправь все косяки типа кривых кавычек и переменных
import datetime, requests
date = (datetime.datetime.today()- datetime.timedelta(days=2)).strftime("%Y%m%d") EUR_L=f"https://www.cmegroup.com/CmeWS/exp/voiProductDetailsViewExport.ctl?media=xls&tradeDate={date}&reportType=P&productId=58" print(f"Url: {EUR_L}") EUR = requests.get(EUR_L,headers={'User-Agent': 'Mozilla/5.0'}) with open(output_path +"EUR.xls", "wb") as f: f.write(EUR.content)
Отредактировано ZerG (Янв. 28, 2024 13:57:43)
Офлайн
Ошибок при этом не возникает, но загружается пустой файл эксель с комментарием
“{”message“: ”This IP address is blocked due to suspected web scraping activity associated with it on this CMEgroup.com page. Use of scripts, software, spiders, robots, avatars, agents, tools or other scraping "
При этом при открытии напрямую страницы с такой же ссылком загружается файл с данными, возможно как то направить запрос аналогичный через скрипт?
Офлайн
Попробуй с хидерами поиграй
https://scrapeops.io/docs/fake-user-agent-headers-api/fake-browser-headers/
Офлайн
Вот такую ему отправил
curl -A "Firefox/119" -H "Accept-Encoding: x" "https://www.cmegroup.com/CmeWS/exp/voiProductDetailsViewExport.ctl?media=xls&tradeDate=20240126&reportType=P&productId=58" -o VoiDetailsForProduct.xls
Офлайн
у меня с такими заголовками сработало
import requests session = requests.session() url = 'https://www.cmegroup.com/CmeWS/exp/voiProductDetailsViewExport.ctl' headers = { 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'accept-language': 'ru,en;q=0.9,fr;q=0.8', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 YaBrowser/22.3.3.889 Yowser/2.5 Safari/537.36' } payload = {'media':'xls', 'tradeDate':'20240126', 'reportType':'P', 'productId':'58' } resp = session.get(url, params=payload, headers=headers) with open('download_file.xls', 'wb') as wf: wf.write(resp.content)
Офлайн
Ошибка сервера 403 (Forbidden Error) означает, что вам запрещен доступ к странице, файлу или папке, URL которых вы ввели в адресной строке.
drift hunters
Отредактировано squeakreproduce (Апрель 11, 2024 11:27:38)
Офлайн