Очистка Flurry с использованием запросов 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) без извлечения новых данных. Кто-нибудь был в состоянии успешно подключиться к такой суматохе раньше?
Любая помощь будет принята с благодарностью, спасибо.
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)