使用Python中的请求模块登录巴克莱英超梦幻足球吗?

迈克尔·安德鲁·本特利:

我正在尝试编写Python脚本,以允许我通过https://fantasy.premierleague.com/登录到我的幻想足球帐户,但是登录时并不太正确。当我通过浏览器登录并检查时使用Chrome开发人员工具查看详细信息,我发现请求URL为https://users.premierleague.com/accounts/login/,发送的表单数据为:

csrfmiddlewaretoken:[My token]
login:[My username]
password:[My password]
app:plfpl-web
redirect_uri:https://fantasy.premierleague.com/a/login

还有许多Request标头:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:185
Content-Type:application/x-www-form-urlencoded
Cookie:[My cookies]
Host:users.premierleague.com
Origin:https://fantasy.premierleague.com
Referer:https://fantasy.premierleague.com/
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36

因此,我使用请求库编写了一个简短的Python脚本,以尝试登录并导航至页面,如下所示:

import requests
with requests.Session() as session:
url_home = 'https://fantasy.premierleague.com/'
html_home = session.get(url_home)
csrftoken = session.cookies['csrftoken']
values = {
    'csrfmiddlewaretoken': csrftoken,
    'login': <My username>,
    'password': <My password>,
    'app': 'plfpl-web',
    'redirect_uri': 'https://fantasy.premierleague.com/a/login'
}
head = {
    'Host':'users.premierleague.com',
    'Referer': 'https://fantasy.premierleague.com/',
}
session.post('https://users.premierleague.com/accounts/login/', 
             data = values, headers = head)
url_transfers = 'https://fantasy.premierleague.com/a/squad/transfers'
html_transfers = session.get(url_transfers)
print(html_transfers.content)

在打印出我的发帖请求的内容时,我收到一个HTML响应代码500错误,内容如下:

b'\n<html>\n<head>\n<title>Fastly error: unknown domain users.premierleague.com</title>\n</head>\n<body>\nFastly error: unknown domain: users.premierleague.com. Please check that this domain has been added to a service.</body></html>'  

如果我从主字典中删除“主机”,则会收到HTML响应代码405错误,并显示以下内容:

b''

我试过在头字典中包含Request标头的各种组合,但似乎没有任何效果。

TKerr:

以下对我有用。我只是删除了headers = head

session.post('https://users.premierleague.com/accounts/login/', 
             data = values)

我认为您正在尝试像我一样以编程方式选拔您的团队。您的代码让我开始感谢。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章