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中的split()函数的使用方法
Apr 07 Python
使用python为mysql实现restful接口
Jan 05 Python
python使用zip将list转为json的方法
Dec 31 Python
django2.0扩展用户字段示例
Feb 13 Python
python实现学员管理系统
Feb 26 Python
详解爬虫被封的问题
Apr 23 Python
Python Pandas分组聚合的实现方法
Jul 02 Python
python查看文件大小和文件夹内容的方法
Jul 08 Python
python通过链接抓取网站详解
Nov 20 Python
TensorFlow的reshape操作 tf.reshape的实现
Apr 19 Python
解决TensorFlow调用Keras库函数存在的问题
Jul 06 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 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
9条PHP编程小知识及易犯的小错误
2015/01/22 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
Seajs的学习笔记
2014/03/04 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
vue实现树形菜单效果
2018/03/19 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
使用Python的PEAK来适配协议的教程
2015/04/14 Python
使用C++扩展Python的功能详解
2018/01/12 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
python opencv如何实现图片绘制
2020/01/19 Python
Python中的全局变量如何理解
2020/06/04 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
美国内衣品牌:Leonisa
2016/08/14 全球购物
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
物业管理计划书
2014/01/10 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python