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利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
Python升级提示Tkinter模块找不到的解决方法
Aug 22 Python
Python bsddb模块操作Berkeley DB数据库介绍
Apr 08 Python
归纳整理Python中的控制流语句的知识点
Apr 14 Python
Python中有趣在__call__函数
Jun 21 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Python reduce()函数的用法小结
Nov 15 Python
使用Python读取大文件的方法
Feb 11 Python
python中metaclass原理与用法详解
Jun 25 Python
python编写softmax函数、交叉熵函数实例
Jun 11 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
Oct 31 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 面向对象的一个例子
2011/04/12 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
Vuex提升学习篇
2018/01/11 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
Python中处理字符串之endswith()方法的使用简介
2015/05/18 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
使用django-guardian实现django-admin的行级权限控制的方法
2018/10/30 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
计算机专业优秀大学生自我总结
2014/01/21 职场文书
九年级历史教学反思
2014/01/27 职场文书
优秀家长自荐材料
2014/08/26 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
试用期自我评价范文
2015/03/10 职场文书
Python中的套接字编程是什么?
2021/06/21 Python
浅谈如何保证Mysql主从一致
2022/03/13 MySQL
MYSQL如何查看操作日志详解
2022/05/30 MySQL