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使用cookielib库示例分享
Mar 03 Python
用python登录Dr.com思路以及代码分享
Jun 25 Python
Python while、for、生成器、列表推导等语句的执行效率测试
Jun 03 Python
python删除过期log文件操作实例解析
Jan 31 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
May 24 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
Jul 11 Python
详解python中的线程与线程池
May 10 Python
django haystack实现全文检索的示例代码
Jun 24 Python
使用OpenCV去除面积较小的连通域
Jul 05 Python
python 5个实用的技巧
Sep 27 Python
python 实现的车牌识别项目
Jan 25 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 不错的学习资料
2009/02/06 PHP
javascript 小型动画组件与实现代码
2010/06/02 PHP
PHP常用数组函数介绍
2014/07/28 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
python 生成器协程运算实例
2017/09/04 Python
PyQt5每天必学之拖放事件
2020/08/27 Python
Python中偏函数用法示例
2018/06/07 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
Python super()函数使用及多重继承
2020/05/06 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
银行会计业务的个人自我评价
2013/11/02 职场文书
创业计划书的内容步骤和要领
2014/01/04 职场文书
活动总结的格式
2014/05/07 职场文书
勤奋学习演讲稿
2014/05/10 职场文书
谢师宴家长致辞
2015/07/27 职场文书
创业计划书之美甲店
2019/09/20 职场文书