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语言技巧之三元运算符使用介绍
Mar 04 Python
Python实现的Kmeans++算法实例
Apr 26 Python
从零学Python之hello world
May 21 Python
python操作sqlite的CRUD实例分析
May 08 Python
小小聊天室Python代码实现
Aug 17 Python
python中requests小技巧
May 10 Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
Python入门必须知道的11个知识点
Mar 21 Python
解决python写入带有中文的字符到文件错误的问题
Jan 31 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
Pytorch如何切换 cpu和gpu的使用详解
Mar 01 Python
Python django中如何使用restful框架
Jun 23 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
zend framework多模块多布局配置
2011/02/26 PHP
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
深入PHP变量存储的详解
2013/06/13 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
php正确输出json数据的实例讲解
2018/08/21 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
使用jQuery加载html页面到指定的div实现方法
2016/07/13 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
Python实现查找系统盘中需要找的字符
2015/07/14 Python
浅谈Python 对象内存占用
2016/07/15 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
使用Python 统计高频字数的方法
2019/01/31 Python
pandas分区间,算频率的实例
2019/07/04 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
详解用selenium来下载小姐姐图片并保存
2021/01/26 Python
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
销售找工作求职信
2013/12/20 职场文书
酒店副总岗位职责
2013/12/24 职场文书
创业计划书模版
2014/02/05 职场文书
聘任书模板
2014/03/29 职场文书
社区志愿者培训方案
2014/06/10 职场文书
小平您好观后感
2015/06/09 职场文书
汽车车尾标语大全
2015/08/11 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers