python模拟表单提交登录图书馆


Posted in Python onApril 27, 2018

本文实例为大家分享了python模拟登录图书馆的具体代码,供大家参考,具体内容如下

模拟表单提交的原理:

我们都知道Http是无状态的,所以当我们提交的数据和浏览器中正常提交一样,那么服务器就会返回和浏览器中一样的响应。所以我们这里来模拟浏览器表单提交登录广东工业大学的图书馆 http://222.200.122.171:7771/login.aspx获取cookie,我们接下来访问图书馆网站里的其他页面时就带上这个cookie,服务器会认为我是已经登录的用户,回正常返回数据给我。

首先我们先用浏览器查看页面源代码找到要提交的form表单:

python模拟表单提交登录图书馆

接下来我们要获取表单中的input 包括hidden,因为hidden也会跟着表单一起提交.找到账号和密码对应的name  到时候我们需要用自己的账号填写的.

python模拟表单提交登录图书馆

获取到所有的要提交的表单内容后,将账号和密码替换成自己的账号和密码,提交请求.获取cookie并保存在cookie中。

代码如下(Python2.7版本 和Python3都其实都差不多):

# -*- coding:utf-8 -*- 
import urllib 
import urllib2 
import cookielib 
import bs4 
 
result = urllib2.urlopen("http://222.200.122.171:7771/login.aspx") 
soup = bs4.BeautifulSoup(result, "html.parser") 
 
logindiv = soup.find("form", attrs={"name": "aspnetForm"}) 
Allinput = logindiv.findAll("input") 
inputData = {} 
for oneinput in Allinput: 
 if oneinput.has_attr('name'): 
  if oneinput.has_attr('value'): 
   inputData[oneinput['name']] = oneinput['value'] 
  else: 
   inputData[oneinput['name']] = "" 
inputData['ctl00$ContentPlaceHolder1$txtPas_Lib'] = '*****' 
inputData['ctl00$ContentPlaceHolder1$txtUsername_Lib'] = '*******' 
 
filename = 'cookie.txt' 
# 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件 
cookie = cookielib.MozillaCookieJar(filename) 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) 
postdata = urllib.urlencode(inputData) 
result2 = opener.open("http://222.200.122.171:7771/login.aspx", postdata) 
cookie.save(ignore_discard=True, ignore_expires=True) 
#登录后 要访问的url 
bookUrl = "http://222.200.122.171:7771/user/userinfo.aspx" 
result=opener.open(bookUrl) 
print result.read()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现同时给多个变量赋值的方法
Apr 30 Python
python创建列表并给列表赋初始值的方法
Jul 28 Python
Python实现计算最小编辑距离
Mar 17 Python
Python 遍历列表里面序号和值的方法(三种)
Feb 17 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 Python
Pyecharts绘制全球流向图的示例代码
Jan 08 Python
pandas数据拼接的实现示例
Apr 16 Python
Python logging模块handlers用法详解
Aug 14 Python
python利用 keyboard 库记录键盘事件
Oct 16 Python
Python matplotlib绘制雷达图
Apr 13 Python
Python 读取指定文件夹下的所有图像方法
Apr 27 #Python
python sys,os,time模块的使用(包括时间格式的各种转换)
Apr 27 #Python
python读取文件名称生成list的方法
Apr 27 #Python
python实现图书馆研习室自动预约功能
Apr 27 #Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 #Python
详解python多线程、锁、event事件机制的简单使用
Apr 27 #Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 #Python
You might like
PHP扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
JavaScript 动态生成方法的例子
2009/07/22 Javascript
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
2012/02/03 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
Python教程之全局变量用法
2016/06/27 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
django的settings中设置中文支持的实现
2019/04/28 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
Python numpy数组转置与轴变换
2019/11/15 Python
django框架cookie和session用法实例详解
2019/12/10 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
Django与pyecharts结合的实例代码
2020/05/13 Python
如何一键升级Python所有包
2020/11/05 Python
python爬虫请求头的使用
2020/12/01 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
小学后勤管理制度
2014/01/14 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript