python模拟表单提交登录图书馆
作者:林先生您好 发布时间:2021-11-06 19:20:42
标签:python,登录,图书馆
本文实例为大家分享了python模拟登录图书馆的具体代码,供大家参考,具体内容如下
模拟表单提交的原理:
我们都知道Http是无状态的,所以当我们提交的数据和浏览器中正常提交一样,那么服务器就会返回和浏览器中一样的响应。所以我们这里来模拟浏览器表单提交登录广东工业大学的图书馆 http://222.200.122.171:7771/login.aspx,获取cookie,我们接下来访问图书馆网站里的其他页面时就带上这个cookie,服务器会认为我是已经登录的用户,回正常返回数据给我。
首先我们先用浏览器查看页面源代码找到要提交的form表单:
接下来我们要获取表单中的input 包括hidden,因为hidden也会跟着表单一起提交.找到账号和密码对应的name 到时候我们需要用自己的账号填写的.
获取到所有的要提交的表单内容后,将账号和密码替换成自己的账号和密码,提交请求.获取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()
来源:https://blog.csdn.net/u013243986/article/details/51669553


猜你喜欢
- 前言Python 读取数据自动写入 MySQL 数据库,这个需求在工作中是非常普遍的,主要涉及到 python 操作数据库,读写更新等,数据
- 什么是xml?xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。abc.xml<
- 最终运行效果:OCR(optical character recognition)文字识别是指电子设备(例如扫描仪或数码相机)检查纸上打印的
- Python2.7在Windows上有一个bug,运行报错:UnicodeDecodeError: 'ascii' code
- 从官网下载mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz创建mysql用户[root@Master ho
- 本文实例讲述了Python计算字符宽度的方法。分享给大家供大家参考,具体如下:最近在用python写一个CLI小程序,其中涉及到计算字符宽度
- 一、concat()函数1、功能:将多个字符串连接成一个字符串。2、语法:concat(str1, str2,...)返回结果为连接参数产生
- 参考官网地址:Windows端:https://tensorflow.google.cn/install/source_windowsCPU
- mysql复制表中的一列到另一个表中有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,这很简单,SQL可以这么写:UPDATE
- JS继承 JavaScript中没有类的概念,与类相关的继承的概念更是无从谈起,但是我们可以通过特殊的语法来 模拟面向对象语言中的继承。 在
- 本文实例讲述了Python计算一个文件里字数的方法。分享给大家供大家参考。具体如下:这段程序从所给文件中找出字数来。from string
- 本文实例讲述了javascript中parseInt()函数的定义和用法。分享给大家供大家参考。具体分析如下:此函数可以解析一个字符串,并返
- 一个完整的数据挖掘模型,最后都要进行模型评估,对于二分类来说,AUC,ROC这两个指标用到最多,所以 利用sklearn里面相应的函数进行模
- quiver绘制表示梯度变化非常有用,下面是学习过程中给出的两个例子,可以很好理解quiver的用法from pylab import *c
- 前言随着行业的发展,编程能力逐渐成为软件测试从业人员的一项基本能力。因此在笔试和面试中常常会有一定量的编码题,主要考察以下几点。基本编码能力
- 本文实例为大家分享了python3 pillow模块验证码的具体代码,供大家参考,具体内容如下直接放代码吧,该写的注释基本都写了# -*-
- 废话不多说了,直接给大家贴代码了。import urllibimport urllib2import cookielibdef getImg
- 本文实例讲述了Python切片操作。分享给大家供大家参考,具体如下:我们基本上都知道Python的序列对象都是可以用索引号来引用的元素的,索
- 本文实例讲述了Python模块结构与布局操作方法。分享给大家供大家参考,具体如下:#coding=utf8#起始行#!/usr/bin/en
- 在vue-router控制前端权限是常见需求:有一种做法是直接在后端完成判断,提供页面列表和操作列表,在前端进行渲染,但这个方案并不优雅,前