#python #web-scraping #python-requests
#python #веб-очистка #python-запросы
Вопрос:
Я пытаюсь запросить портфели трейдеров, например, этот: https://www.etoro.com/people/jaynemesis/portfolio
Я знаю, что базовая настройка должна быть следующей:
import requests
import json
response = requests.get(url, headers=header)
data = response.json()
Анализируя вкладку Заголовки запросов, я установил следующие параметры в качестве заголовков:
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0',
'Host': 'www.etoro.com',
'Referer': 'https://www.etoro.com/people/jaynemesis/portfolio/history'
}
и я нашел следующую ссылку вместе с префиксом GET, указывающим на запрос типа GET в Inspect -> вкладка Network -> вкладка Headers:
url = https://www.etoro.com/sapi/trade-data-real/live/public/portfolios?cid=3378352amp;client_request_id=7a29e39e-5324-4234-bac7-d54e8fe4b5a6
При печати response.status_code
я получаю код состояния 512. Чего мне не хватает? Возможно ли, что вообще невозможно запросить эти данные (возможно, они каким-то образом заблокированы)?
Редактировать:
response.text
ВОЗВРАТ"error":{"failureReason":"Something went wrong, please try again"}
response.headers
возвращает длинный dict, начинающийся с:{'Date': 'Mon, 19 Oct 2020 14:33:14 GMT', 'Content-Length': '66', 'Connection': 'keep-alive', 'Set-Cookie': '__cfduid= ... }
Комментарии:
1. Получаете ли вы что-нибудь помимо кода состояния
512
вresponse
— что находится вresponse.text
иresponse.headers
?2.
response.text
возвращает"error":{"failureReason":"Something went wrong, please try again"}
whileresponse.headers
возвращает заголовок dict с датой, длиной содержимого, подключением, набором файлов cookie и многими другими ключами.