首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python3 requests.Session()

使用python3 requests.Session()
EN

Stack Overflow用户
提问于 2016-07-30 05:21:07
回答 1查看 411关注 0票数 1

这看起来真的很直截了当,但由于某些原因,这并没有正确地连接到flurry,而且我无法刮掉数据。

代码语言:javascript
复制
    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),而不会获取新的数据。以前有人能成功地连接到这样的“狂风”吗?

任何帮助都将不胜感激,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-30 11:47:59

还有两个表单字段要填充struts.token.name和来自struts.token.name的值,即令牌,您还必须将其发送到loginAction.do

您可以使用bs4对值进行初始获取和解析,然后发布数据:

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38670599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档