本篇文章主要介绍了Python模拟登陆实现代码,这里整理了详细的代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

原理

使用Cookie技术,绕开网站登录验证。要使用到cookielib库。流程:创建一个保存Cookie的容器,可选的有CookieJar,FileCookieJar,MozillaCookieJar,LWPCookieJar.其相互之间的关系是CookieJar —-派生—->FileCookieJar —-派生—–>MozillaCookieJar和LWPCookieJar.

然后创建一个处理Cookie的处理器handler.通过urllib2.HTTPCookieProcessor(cookie)即可

创建一个用于开启网站的opener。即可。这个opener相比于urllib2.urlopen方法更为普通一点而已。opener = urllib2.build_opener(handler)。

然后我们就可以正常的使用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='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':'zhjw.dlut.edu.cn/menu/s_main.jsp'

}

result = opener.open(course_url)

print result.read()

运行结果

总结

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

python的模拟登录原理_Python模拟登陆实例详解相关推荐

  1. 以python程序调用的系统_python 系统调用的实例详解

    python 系统调用的实例详解 本文将通过两种方法对python 系统调用进行讲解,包括python使用CreateProcess函数运行其他程序和ctypes模块的实例, 一 python使用Cr ...

  2. python语言案例教程 单元测试_python单元测试unittest实例详解

    本文实例讲述了python单元测试unittest用法.分享给大家供大家参考.具体分析如下: 单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情 ...

  3. AWVS登录扫描与不登陆扫描详解

    AWVS登录扫描与不登陆扫描详解 第一步:新建任务 例如: 第二步:点击保存,默认即可 第三步:点击保存.创建任务成功.以下界面显示扫描进度.漏洞类型,以及漏洞个数. 第四步:扫描完成.可以查看漏洞, ...

  4. python url解码_对python中url参数编码与解码的实例详解

    一.简介 在python中url,对于中文等非ascii码字符,需要进行参数的编码与解码. 二.关键代码 1.url编码 对字符串编码用urllib.parse包下的quote(string, saf ...

  5. python中label有什么用_对Python中TKinter模块中的Label组件实例详解

    Python2.7.4 OS-W7x86 1. 简介 Label用于在指定的窗口中显示文本和图像.最终呈现出的Label是由背景和前景叠加构成的内容. Label组件定义函数:Label(master ...

  6. python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...

    本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的 ...

  7. python 类 实例_Python类的实例详解

    类(class)是一个用户自定义类型,开发者可以将其实例化以获得实例(instance),实例表示这种类型的对象.在Python中,类就是对象,开发者可以像对其他对象那样处理函数,可以在调用函数时传递 ...

  8. python处理excel实例编程_python读取Excel实例详解

    本文实例为大家分享了python读取Excel实例的具体代码,供大家参考,具体内容如下 1.操作步骤: (1)安装python官方Excel库-->xlrd (2)获取Excel文件位置并读取 ...

  9. python画tan_Python入门之三角函数tan()函数实例详解

    描述 tan() 返回x弧度的正弦值. 语法 以下是 tan() 方法的语法: import math math.tan(x) 注意:tan()是不能直接访问的,需要导入 math 模块,然后通过 m ...

最新文章

  1. Sisyphus.js的使用
  2. linux下find命令用法
  3. 【机器学习算法-python实现】矩阵去噪以及归一化
  4. mysql 存储过程 select 循环_简简单单储存过程——循环一个select结果集
  5. smarty+php+ajax 简单无刷新分页
  6. uri uri_什么是URI? 了解许可证术语以确保合规
  7. 58 - 算法 -分治问题 - 循环 二分查找 OpenJudge 百练 4143和为给定数
  8. 取代上万行遗留代码,机器学习模型终“上位”
  9. linux之pkill命令
  10. php-elasticsearch 单条、批量插入数据
  11. chm无法打开html文档,高手几招搞定WindowsXP无法打开chm文件的情况
  12. Ubuntu软件更新时出错问题解决
  13. Scroller简介
  14. 解决android api30以上,调用华为P50相机,点击拍照无反应问题
  15. 云中「秘密」:构建非交互式零知识证明---探索零知识证明系列(五)
  16. Android输入汉字得到拼音
  17. iOS开发笔记:大小写敏感的iOS文件系统,而iOS模拟器对大小写不敏感
  18. 最新H5网页分享到Twitter、Facebook带缩略图
  19. 解决:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
  20. 使用getter方法和setter方法

热门文章

  1. Google的非主流功能
  2. php7.3.9 源码安装
  3. 微软XP停止服务,国产软件采购量或上升
  4. windows启动和停止mysql_WIN下启动和停止MYSQL命令
  5. server12 委派_在Server 2008中使用控制委派向导分配权限
  6. PS快速把照片合成超酷粒子飞散效果
  7. Java火焰之纹章2纹章之谜_火焰之纹章2纹章之谜
  8. 计算机美术比赛的画,电脑绘画比赛【赛程】
  9. 证件照转数字人只需几秒钟,微软实现首个3D扩散模型高质量生成效果,换装改形象一句话搞定 | CVPR 2023...
  10. 3. Linux上安装软件以及上传下载工具