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发送Email方法实例
Aug 21 Python
在Python下尝试多线程编程
Apr 28 Python
简单讲解Python中的数字类型及基本的数学计算
Mar 11 Python
Python守护线程用法实例
Jun 23 Python
Python快速排序算法实例分析
Nov 29 Python
Python利用openpyxl库遍历Sheet的实例
May 03 Python
Python对象转换为json的方法步骤
Apr 25 Python
python使用自定义钉钉机器人的示例代码
Jun 24 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
pycharm无法导入lxml的解决办法
Mar 31 Python
Python文件的操作示例的详细讲解
Apr 08 Python
pytorch实现手写数字图片识别
May 20 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
图书管理程序(二)
2006/10/09 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
js替换字符串的所有示例代码
2013/07/23 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
JavaScript递归操作实例浅析
2016/10/31 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
树结构之JavaScript
2017/01/24 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
微信小程序实现form表单本地储存数据
2019/06/27 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
Python控制多进程与多线程并发数总结
2016/10/26 Python
Python数据结构之翻转链表
2017/02/25 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
Python tkinter实现日期选择器
2021/02/22 Python
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
大学生创业计划书的范文
2014/01/07 职场文书
《尊严》教学反思
2014/02/11 职场文书
在职证明范本
2015/06/15 职场文书
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python