2

Я пытаюсь получить данные конкурса из URL: «https://www.draftkings.com/contest/gamecenter/32947401»Использование Python для запроса информации draftkings.com, требующей входа в систему?

Если вы идете к этому URL и не вошли в систему, это будет просто повторно направить вас в вестибюле. Если вы вошли в систему, это покажет вам результаты конкурса.

Вот некоторые вещи, которые я пробовал:

-Первый, я использовал Dev Хрома сетевых инструментов, чтобы наблюдать запросы, пока я вручную вошли в

-I затем попытался скопировать печенье, что я думал, что содержал проверку подлинности Информация, она была в форме:

'ajs_anonymous_id=%123123123123123, mlc=true; optimizelyEndUserId' 

-I затем сохраняется, что печенье в качестве переменной Evironment и побежал этот код:

HEADERS= {'cookie': os.environ['MY_COOKIE'] } 
requests.get(draft_kings_url, headers= HEADERS) 

Не повезло, это просто дало мне вестибюль.

Затем я попытался запрос встроенный в:

  • HTTPBasicAuth
  • HTTPDigestAuth

Не повезло и здесь.

Я пока не эксперт по python, и я довольно сильно измучил то, что знаю, и результаты поиска, которые я нашел. Есть идеи?

ответ

0

Инструмент, который вы хотите, - селен. Что-то вдоль линий:

from selenium import webdriver 

browser = webdriver.Firefox() 
browser.get(r"https://www.draftkings.com/contest/gamecenter/32947401") 

username = browser.find_element_by_id("user") 
username.send_keys("username") 

password = browser.find_element_by_id("password") 
password.send_keys("top_secret") 

login = selenium.find_element_by_name("login") 
login.click() 
+0

эй Бэтмен. Я использовал ваш ответ с некоторыми изменениями и, похоже, работает! Как только я войду в систему, есть ли способ вернуться к использованию запросов? Или мне нужно продолжать работу через webdriver? – TrolliOlli

+0

Вы абсолютно можете переключаться между ними. Вам просто нужно перенести файлы cookie с веб-сервера на ваш сеанс запросов. Посмотрите [этот вопрос] (http://stackoverflow.com/questions/32639014/is-it-possible-to-transfer-a-session-between-selenium-webdriver-and-requests-s) – Batman

+0

Вы можете войти в систему для создания королей с запросами. Селен переполнен. – pguardiario

0

Используйте стельку, чтобы увидеть точный запрос они делают, когда вы пытаетесь войти Затем используйте класс Session в пакете запросов..

import requests 
session = requests.Session() 
session.get('YOUR_URL_LOGIN_PAGE') 

это сохранит все файлы cookie с вашего URL-адреса в вашей переменной сеанса (например, при использовании браузера). Затем отправьте запрос на ввод URL-адреса для входа с соответствующими данными.

Вам не нужно вручную передавать данные cookie, поскольку они автоматически генерируются при первом посещении веб-сайта. Однако вы можете установить некоторые заголовки явно как UserAgent и т.д. по:

session.headers.update({'header_name':'header_value'}) 

HTTPBasicAuth & HTTPDigestAuth может не срабатывать на основе веб-сайта.

 Смежные вопросы

  • Нет связанных вопросов^_^