浅析Python3爬虫登录模拟


Posted in Python onFebruary 07, 2018

使用Python爬虫登录系统之后,能够实现的操作就多了很多,下面大致介绍下如何使用Python模拟登录

我们都知道,在前端的加密验证,只要把将加密环境还原出来,便能够很轻易地登录。

首先分析登录的步骤,通过审查元素得知

<input type="button" id="login" name="login" class="login" onclick="Logon();" value="登录">

点击按钮触发Logon()函数,然后查找Logon()函数定义

function Logon() {
}

函数定义内容各有不同,一般里面包含一些加密的操作,一般是使用写好的js加密。我们所需要做的便是重复这些步骤,加密数据。

对于加密,有三种方法:

  1. 如果加密方法是base64之类的,可以直接用Python3的base64库加密;
  2. 手动模仿;
  3. 直接调用js加密,需要先下载PyExecJS,有的电脑需要先安装js的运行环境,比如Node.js。使用方法如下:
newusername = execjs.compile(content).call('base64encode', username)

其中content是js内容,base64encode是方法,username是参数,newusername是加密后的数据。

对于验证码的问题,先介绍下一般的图片验证码,可以请求获取验证码的地址,session之类的数据自己搞定,一般便可以请求成功,可以存到本地手动输入,也可以使用识别的第三方模块,但这个识别效果并不是很好。

然后,便是查看session,cookie。

接下来的操作就是构造请求头headers,这个可以自行去控制台查看或者使用wireshark, fiddler之类的抓包软件查看。

最后便可以请求数据:

使用

s = requests.Session()
s.headers.update(headers)
r = s.post(url, data = params)

或者:

r = requests.get(url, headers = headers, data = params)

headers是你构造的请求头,url是你请求的网站,params是加密的数据。

Python 相关文章推荐
python下10个简单实例代码
Nov 15 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
Numpy之random函数使用学习
Jan 29 Python
详解Python logging调用Logger.info方法的处理过程
Feb 12 Python
Python零基础入门学习之输入与输出
Apr 03 Python
python basemap 画出经纬度并标定的实例
Jul 09 Python
python多任务之协程的使用详解
Aug 26 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
opencv python如何实现图像二值化
Feb 03 Python
Python序列化pickle模块使用详解
Mar 05 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
Apr 13 Python
Python实现的三层BP神经网络算法示例
Feb 07 #Python
Python 12306抢火车票脚本
Feb 07 #Python
django限制匿名用户访问及重定向的方法实例
Feb 07 #Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 #Python
Python实现的径向基(RBF)神经网络示例
Feb 06 #Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 #Python
初探TensorFLow从文件读取图片的四种方式
Feb 06 #Python
You might like
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
vue中如何使用ztree
2018/02/06 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
python识别验证码的思路及解决方案
2020/09/13 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
自我评价怎么写正确呢?
2013/12/02 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
学习经验演讲稿
2014/05/10 职场文书
学校志愿者活动总结
2014/06/27 职场文书
动物科学专业求职信
2014/07/27 职场文书
六五普法宣传标语
2014/10/06 职场文书
2014年卫生工作总结
2014/11/27 职场文书
教师节领导致辞
2015/07/29 职场文书