Шквал очистки с использованием запросов python3.Session()

Это кажется очень простым, но по какой-то причине это неправильно подключается к шквалу, и я не могу очистить данные.

    loginurl = "https://dev.flurry.com/secure/loginPage.do"
    csvurl = "https://dev.flurry.com/eventdata"

    session = requests.Session()
    login = session.post(loginurl, data={'loginEmail': 'user', 'loginPassword': 'pass'})
    data = session.get(csvurl)

Каждый раз, когда я пытаюсь использовать это, меня перенаправляют обратно на экран входа в систему (loginurl) без получения новых данных. Кому-нибудь удавалось успешно подключиться к Flurry раньше?

Любая помощь будет принята с благодарностью, спасибо.


person Nefariis    schedule 30.07.2016    source источник


Ответы (1)


Необходимо заполнить еще два поля формы: struts.token.name и значение из struts.token.name, то есть token, у вас также есть для публикации на loginAction.do:

введите здесь описание изображения

Вы можете выполнить начальное получение и анализ значений с помощью bs4, а затем опубликовать данные:

from bs4 import BeautifulSoup
import requests 

loginurl = "https://dev.flurry.com/secure/loginAction.do"
csvurl = "https://dev.flurry.com/eventdata"#
data = {'loginEmail': 'user', 'loginPassword': 'pass'}

with requests.Session() as session:
    session.headers.update({
        "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36"})

    soup = BeautifulSoup(session.get(loginurl).content)
    name = soup.select_one("input[name=struts.token.name]")["value"]
    data["struts.token.name"] = name
    data[name] = soup.select_one("input[name={}]".format(name))["value"]
    login = session.post(loginurl, data=data)
person Padraic Cunningham    schedule 30.07.2016
comment
Спасибо за ответ. Кажется, данные {} заполнены правильно {'token': '4M9BFNE1NVFK89CZTP8CQO3MKUHWLQYZ', 'struts.token.name': 'token', 'loginPassword': 'mypass', 'loginEmail': 'myemail' } ... но меня все равно перенаправляют обратно на страницу входа - person Nefariis; 30.07.2016
comment
@Nefariis, у тебя тоже был неверный URL поста! Смотрите обновление, теперь print(login.history) должно показать вам [302, 302] и вы войдете в систему - person Padraic Cunningham; 30.07.2016
comment
Вы абсолютно правы насчет URL поста, все работает как надо - спасибо. - person Nefariis; 30.07.2016
comment
Эй, извините за воскрешение решенной темы, но все работало отлично до нескольких дней назад, и я не могу понять, что изменилось в их процессе входа в систему. ` print(login.history) ` показывает ` [‹Ответ [302]›, ‹Ответ [302]›, ‹Ответ [302]›, ‹Ответ [302]›, ‹Ответ [303]›] ` но я конец вернуться на страницу входа. Есть ли шанс, что вы могли бы взглянуть? Ни один код не был изменен с тех пор, как он был реализован месяц назад. - person Nefariis; 24.08.2016