加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

需要帮助搞清楚如何在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>]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读