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实现的去除win下文本文件头部BOM的代码
Feb 10 Python
python操作redis方法总结
Jun 06 Python
Python中pandas模块DataFrame创建方法示例
Jun 20 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 Python
pycharm 批量修改变量名称的方法
Aug 01 Python
解决python明明pip安装成功却找不到包的问题
Aug 28 Python
利用python3 的pygame模块实现塔防游戏
Dec 30 Python
python在不同条件下的输入与输出
Feb 13 Python
Python利用Xpath选择器爬取京东网商品信息
Jun 01 Python
Python logging模块handlers用法详解
Aug 14 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
Jun 01 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 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
php5.2时间相差8小时
2007/01/15 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
PHP类的反射用法实例
2014/11/03 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
2013/04/27 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
JavaScript实现同时调用多个函数的方法
2015/11/09 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
2019/09/11 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
详解Python中列表和元祖的使用方法
2015/04/25 Python
Python标准库defaultdict模块使用示例
2015/04/28 Python
Python进程间通信之共享内存详解
2017/10/30 Python
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
什么是类的返射机制
2016/02/06 面试题
高一生物教学反思
2014/01/17 职场文书
小学生安全演讲稿
2014/04/25 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
寒山寺导游词
2015/02/03 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
golang 实现Location跳转方式
2021/05/02 Golang