浅析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中的hypot()方法使用简介
May 18 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
python二维码操作:对QRCode和MyQR入门详解
Jun 24 Python
使用python对多个txt文件中的数据进行筛选的方法
Jul 10 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
openCV提取图像中的矩形区域
Jul 21 Python
python raise的基本使用
Sep 10 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 Python
Python关于拓扑排序知识点讲解
Jan 04 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
php array_map()数组函数使用说明
2011/07/12 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
2014/05/19 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
PHP中foreach()用法汇总
2015/07/02 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
海量经典的jQuery插件集合
2010/01/12 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
JavaScript实现页面跳转的几种常用方式
2015/11/28 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
Js面试算法详解
2018/04/08 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
python中类的属性和方法介绍
2018/11/27 Python
PyTorch基本数据类型(一)
2019/05/22 Python
Django用户认证系统 User对象解析
2019/08/02 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
keras 实现轻量级网络ShuffleNet教程
2020/06/19 Python
什么是Remote Module
2016/06/10 面试题
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
2015年班组长工作总结
2015/04/10 职场文书
法定代表人身份证明书
2015/06/18 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫