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 Mysql自动备份脚本
Jul 14 Python
简洁的十分钟Python入门教程
Apr 03 Python
python 获取等间隔的数组实例
Jul 04 Python
解决Django中多条件查询的问题
Jul 18 Python
用django设置session过期时间的方法解析
Aug 05 Python
详解Django将秒转换为xx天xx时xx分
Sep 27 Python
利用python实现AR教程
Nov 20 Python
基于python求两个列表的并集.交集.差集
Feb 10 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 Python
10个示例带你掌握python中的元组
Nov 23 Python
python 模拟登陆163邮箱
Dec 15 Python
解决Pytorch中关于model.eval的问题
May 22 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/04 星际争霸
递归列出所有文件和目录
2006/10/09 PHP
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
Jquery ThickBox插件使用心得(不建议使用)
2010/09/08 Javascript
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
js获取url中"?"后面的字串方法
2014/05/15 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
Python os模块介绍
2014/11/30 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
python+pygame简单画板实现代码实例
2017/12/13 Python
详解python的四种内置数据结构
2019/03/19 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
给大家整理了19个pythonic的编程习惯(小结)
2019/09/25 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
园林技术个人的自我评价
2014/02/15 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
代理协议书
2014/04/22 职场文书
生产车间管理制度
2015/08/04 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android