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中使用PyHook监听鼠标和键盘事件实例
Jul 18 Python
Python中super()函数简介及用法分享
Jul 11 Python
Python3 模块、包调用&路径详解
Oct 25 Python
Python实现自动上京东抢手机
Feb 06 Python
详解Django rest_framework实现RESTful API
May 24 Python
tensorflow 加载部分变量的实例讲解
Jul 27 Python
matplotlib给子图添加图例的方法
Aug 03 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
python3实现的zip格式压缩文件夹操作示例
Aug 17 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
Python+OpenCV图像处理——实现轮廓发现
Oct 23 Python
浅谈Python响应式类库RxPy
Jun 14 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
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
56.com视频采集接口程序(PHP)
2007/09/22 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
IE中createElement需要注意的一个问题
2010/07/13 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
python 解压pkl文件的方法
2018/10/25 Python
在Python中定义一个常量的方法
2018/11/10 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
优秀英语专业毕业生求职信
2013/11/23 职场文书
超市后勤自我鉴定
2014/01/17 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
python基础之类方法和静态方法
2021/10/24 Python
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js