Python模拟登陆实现代码


Posted in Python onJune 14, 2017

下面分享一个使用Python进行网站模拟登陆的小例子。

原理

使用Cookie技术,绕开网站登录验证。要使用到cookielib库。流程:

  1. 创建一个保存Cookie的容器,可选的有CookieJar,FileCookieJar,MozillaCookieJar,LWPCookieJar.其相互之间的关系是CookieJar —-派生—->FileCookieJar —-派生—?>MozillaCookieJar和LWPCookieJar.
  2. 然后创建一个处理Cookie的处理器handler.通过urllib2.HTTPCookieProcessor(cookie)即可
  3. 创建一个用于开启网站的opener。即可。这个opener相比于urllib2.urlopen方法更为普通一点而已。opener = urllib2.build_opener(handler)。
  4. 然后我们就可以正常的使用opener来访问网络了。

小案例

实现的功能是模拟登录到大连理工大学的教务网站。代码如下:

# coding:UTF-8

import urllib,urllib2,cookielib

filename = r'F:\pachong\gaoqing\dlutcookie.txt'
# show cookie and save to local
cookie = cookielib.MozillaCookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
# 记得使用urllib模块进行参数的encode
postdata = urllib.urlencode({
  # 哈哈,本宫不给你们我的账号?(?^?)?
  'zjh':'xxxxxxxxx',
  'mm':'XXXXXX'
})


# 登陆到教务系统的url
url = 'http://zhjw.dlut.edu.cn/loginAction.do'

# 开始进行模拟登陆,并把cookie保存到变量
response = opener.open(url,postdata)
cookie.save(filename,ignore_discard=True,ignore_expires=True)

# 打印一下获得的cookie信息吧
for item in cookie:
  item.name + ' = ' + item.value




# 利用cookie访问另一个网址  登陆到个人成绩的URL
course_url='http://zhjw.dlut.edu.cn/xkAction.do?actionType=6'
course_header={
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586',
  'referer':'http://zhjw.dlut.edu.cn/menu/s_main.jsp'
}

result = opener.open(course_url)
print result.read()

运行结果

Python模拟登陆实现代码

总结

其实对于模拟登陆而言,第一次的登陆就是为了获取那个cookie数据。然后通过我们创建的opener来完成接下来我们要进行的关键的进一步的操作。我们需要理解的就只是那个cookie的使用的流程就行了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python编程过程中用单元测试法调试代码的介绍
Apr 02 Python
Python pickle模块用法实例分析
May 27 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
Vue的el-scrollbar实现自定义滚动
May 29 Python
详解Numpy中的广播原则/机制
Sep 20 Python
对python生成业务报表的实例详解
Feb 03 Python
python3实现二叉树的遍历与递归算法解析(小结)
Jul 03 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Python接口测试结果集实现封装比较
May 01 Python
最简单的matplotlib安装教程(小白)
Jul 28 Python
python中的垃圾回收(GC)机制
Sep 21 Python
Python 自动刷博客浏览量实例代码
Jun 14 #Python
python简单线程和协程学习心得(分享)
Jun 14 #Python
Python字符串处理实现单词反转
Jun 14 #Python
python3实现UDP协议的服务器和客户端
Jun 14 #Python
老生常谈Python基础之字符编码
Jun 14 #Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 #Python
Python之re操作方法(详解)
Jun 14 #Python
You might like
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
处理单名多值表单的详解
2013/06/08 PHP
php短址转换实现方法
2015/02/25 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
php数组遍历类与用法示例
2019/05/24 PHP
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
python计算牛顿迭代多项式实例分析
2015/05/07 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
Python中如何添加自定义模块
2020/06/09 Python
详解Python IO编程
2020/07/24 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
秋季开学典礼主持词
2014/03/19 职场文书
车辆委托书范本
2014/10/05 职场文书
商铺门面租房协议书
2014/10/21 职场文书
婚前协议书范本
2014/10/27 职场文书
委托书格式要求
2015/01/28 职场文书
如何写辞职书
2015/02/26 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书