在Python中用Request库模拟登录:字幕库(无加密,无验证码)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python中用Request库模拟登录:字幕库(无加密,无验证码)相关的知识,希望对你有一定的参考价值。

如此简单(不安全)的登录表单已经不多见了。字幕库的登录表单如下所示,其中省去了无关紧要的内容:

1 <form class="login-form" action="/User/login.html" method="post">
2     <input type="hidden" name="referer" value="http://www.zimuku.net/">
3     <input type="text" id="inputEmail" datatype="*1-16" value="" name="username">
4     <input type="password" id="inputPassword" datatype="*6-20" name="password">
5     <input type="checkbox" name="isremember" value="1" checked="">
6     <button type="submit" class="btn submit-btn">登 陆</button>
7 </form>  

通过抓包分析,可以发现用户名和密码都没有被加密:

技术分享

直接使用POST来模拟登录:

 1 import requests
 2 from bs4 import BeautifulSoup
 3 
 4 url=http://www.zimuku.net/User/login.html
 5 data={referer:‘‘,username:***,password:***,isremember:1}
 6 
 7 #创建会话
 8 session=requests.session()
 9 #模拟登录
10 r=session.post(url,data=data)
11 #解析页面
12 bs=BeautifulSoup(r.text,lxml)
13 
14 print(bs.body.text) #登录成功!页面自动 跳转 等待时间: 1

成功登录,分析返回页面中的js代码,发现有:

href = document.getElementById(‘href‘).href;
location.href = href;

说明要跳转到的页面在id为href的超链接中:

<a id="href" href="/User/index.html">跳转</a>

获取要跳转到的页面,然后尝试打开新页面时登录状态能否被保持:

1 href=http://www.zimuku.net+bs.find(id=href).attrs[href]
2 r2=ss.get(href)
3 print(BeautifulSoup(r2.text,lxml).title.text)#首页 - 用户中心 - 字幕库(zimuku.net)

打印出了“首页 - 用户中心”字样,成功保持登录状态。

以上是关于在Python中用Request库模拟登录:字幕库(无加密,无验证码)的主要内容,如果未能解决你的问题,请参考以下文章

在Python中用Request库模拟登录:哔哩哔哩(有加密,有验证码)

Python Request库模拟登录

基于python的request库,模拟登录csdn博客

python中用requests库实现Windows认证登录

如何在Python请求库中模拟会话?

urllib库利用cookie实现模拟登录慕课网