Вход на сайт и сбор данных

Я пытаюсь войти на веб-сайт https://realitysportsonline.com/RSOLanding.aspx. Кажется, я не могу заставить работать логин, поскольку этот процесс немного отличается от обычного сайта, на котором есть страница входа в систему. У меня нет никаких ошибок, но вход в систему не работает, из-за чего главная страница перенаправляется на домашнюю страницу.

import requests
url = "https://realitysportsonline.com/RSOLanding.aspx"
main = "https://realitysportsonline.com/SetLineup_Contracts.aspx?leagueId=3000&viewingTeam=1"
data = {"username": "", "password": "", "vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-3d vc_btn3-color-danger" : "Log In"}
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
          'Referer':  'https://realitysportsonline.com/RSOLanding.aspx', 
          'Host':  'realitysportsonline.com',
          'Connection':   'keep-alive',
          'Accept-Language':    'en-US,en;q=0.5',
          'Accept-Encoding':    'gzip, deflate, br',
          'Accept':  'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'}

s = requests.session()
s.get(url)
r = s.post(url, data, headers=header)

page = requests.get(main)

person CBW    schedule 10.08.2018    source источник
comment
Как не работает предоставленный вами код? Выдает ошибку? Если это так, отредактируйте свой вопрос, чтобы упомянуть об этом.   -  person Harry Cutts    schedule 10.08.2018


Ответы (1)


Прежде всего, вы создаете сеанс и, предполагая, что ваш POST запрос сработал, вы затем запрашиваете авторизованную страницу, не используя ранее созданный сеанс.

Вам нужно сделать запрос с созданным вами объектом s следующим образом: page = s.get(main)

Однако с вашим POST запросом также возникли некоторые проблемы. Вы делали запрос на домашнюю страницу вместо маршрута /Login. Вам также не хватало заголовка Content-Type.

import requests

url = "https://realitysportsonline.com/Services/AccountService.svc/Login"
main = "https://realitysportsonline.com/LeagueSetup.aspx?create=true"
payload = {"username":"","password":""}
headers = {
    'Content-Type': "text/json",
    'Cache-Control': "no-cache"
}

s = requests.session()
response = s.post(url, json=payload, headers=headers)
page = s.get(main)

PS ваш URL-адрес запроса main перенаправляет на домашнюю страницу даже при действительном сеансе (по крайней мере, для меня).

person Tom    schedule 10.08.2018