需要帮助搞清楚如何在python中发送POST登录信息
发布时间:2020-12-20 13:12:03 所属栏目:Python 来源:网络整理
导读:所以我目前正在开发一个下载程序,并且这样做我需要从输入的网页中获取.m3u8链接.我已经制作了该程序并且工作正常,但是对于高级独家视频,它无法访问该链接,因为除非您已登录,否则链接不会显示在日志中.我想实现登录的能力你有一个帐户,我一直在使用请求发布登
所以我目前正在开发一个下载程序,并且这样做我需要从输入的网页中获取.m3u8链接.我已经制作了该程序并且工作正常,但是对于高级独家视频,它无法访问该链接,因为除非您已登录,否则链接不会显示在日志中.我想实现登录的能力你有一个帐户,我一直在使用请求发布登录信息以及每次登录所需的身份验证密钥(_token),但无济于事.我登录,然后在r变量中我尝试访问高级独家视频,但链接仍然不存在.这是我的代码中的登录部分,我显然已经用用户名和密码替换了我的帐户详细信息,但是如果有人可以帮助我,我会非常感激,我仍然是相对较新的
python,谢谢!
…此外,我登录了Fiddler打开的网站,所以我可以看到发布的内容是为了尝试更好地理解这个过程,我将该字符串存储在’actual_POST’下仅供参考. s = requests.Session() url = "https://roosterteeth.com/login" payload = {'username': 'password','password': 'password','_token': 'GCZLoBNyjFrN2SReFjEydkN6qx6NT5hU8jVfyZOl'} actual_POST = '_token=GCZLoBNyjFrN2SReFjEydkN6qx6NT5hU8jVfyZOl&username=username&password=password&redirectTo=http%3A%2F%2Froosterteeth.com%2F' with s as j: b = s.post(url,data=payload,headers={'User-Agent': 'Mozilla/5.0'}) r = s.get('http://roosterteeth.com/episode/rt-sponsor-cut-season-2-sponsor-play-alien-isolation-dlc') print(r.text) 解决方法
您不能使用从浏览器中提取的_token,您需要发出请求并从响应中解析_token然后在帖子中使用它:
import requests from bs4 import BeautifulSoup url = "https://roosterteeth.com/login" payload = {'username': 'dyour_user','password': 'your_pass',"redirectTo":"http://roosterteeth.com/"} headers= {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/50.0.2661.75 Safari/537.36'} with requests.Session() as s: r = s.get(url) payload["_token"] = BeautifulSoup(r.text).select_one("input[name=_token]")["value"] b = s.post(url,headers=headers,allow_redirects=1) print(BeautifulSoup(b.text,"lxml").select("p.username")) 如果我们使用登录详细信息运行上面的代码,您可以看到我们成功: In [21]: url = "https://roosterteeth.com/login" In [22]: payload = {'username': 'xxxxx','password': 'xxxxx',....: ....: "redirectTo": "http://roosterteeth.com/"} In [23]: headers = { ....: 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/50.0.2661.75 Safari/537.36'} In [24]: with requests.Session() as s: ....: r = s.get(url) ....: payload["_token"] = BeautifulSoup(r.text,"lxml").select_one("input[name=_token]")["value"] ....: b = s.post(url,allow_redirects=1) ....: print(BeautifulSoup(b.text,"lxml").select("p.username")) ....: [<p class="username"><a href="javascript:void"> xxxxx <i class="icon ion-arrow-down-b"></i> </a></p>] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |