python登陆教务管理系统
想试着模拟登陆一些网站,这次先拿学校的教务管理系统练练手,写一下登陆的流程。
1.我们登陆的url:http://222.195.8.201,但我们所填的密码不是提交到这个页面上去,检查一下页面代码

我们看到提交后post数据是提交到pass.asp页面。或者在chrome上F12点击登陆查看跳转的页面:

根据时间的顺序第一个页面就是pass.asp,确实这就是提交的页面。后面也是服务器传过来的页面。
2.登陆原理也很简单,提交表单获取cookie,然后以后利用所携带的cookie来构建请求报文访问其他的页面。
我们在首次登陆时点击提交服务器返回cookie存储在用户本机

这就是我们提交表单后所得到的cookie内容,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据。往后在访问相同站点的其他url时请求报文就会假如cookie,服务器利用cookie来对用户进行识别,我们登陆之后点击其他页面我们查看提交报文中就含有相同的cookie。

一下就是访问其他页面返回的html

import urllib
import urllib2
import cookielib
#声明一个cookieJar对象实例来保存Cookie
cookie = cookielib.CookieJar()
#声明一个urllib2.HTTPCookieProcessor对象创建一个cookie处理器
handle=urllib2.HTTPCookieProcessor(cookie)
#构建一个opener
opener = urllib2.build_opener(handle) #需要POST的数据,查看formData#
postdata=urllib.urlencode({
'UserStyle':'student',
'user':'你的学号',
'password':'你的密码',
'method': 'POST'
})
#自定义一个请求#
req = urllib2.Request(
url = 'http://222.195.8.201/pass.asp',
data = postdata )
#访问该链接#
result = opener.open(req) #打印返回的内容#
print result.read()
#查看cookie#
for item in cookie:
print 'Cookie:Name = '+item.name
print 'Cookie:Value = '+item.value
#查看成绩一栏#
res=opener.open('http://222.195.8.201/student/asp/xsxxxxx.asp')
print res.read()
抓取到页面后剩下的就交给BeautifulSoup了
python登陆教务管理系统的更多相关文章
- Python Selenium + phantomJS 模拟登陆教务管理系统  “抢课”
		
# _*_coding:utf-8_*_ from selenium import webdriver from selenium.webdriver.common.action_chains imp ...
 - python获取教务管理系统的MM照片
		
前提:你的教务管理系统是明文存储大家的图片,加密的图片就不好弄了... 也就是能够通过浏览器直接访问...技术上就不存在什么问题了...如果是学号存储的就更方便了 然后我们就可以写个小脚本了...其实 ...
 - 基于UML的高校教务管理系统的设计与实现
		
一.基本信息 标题:基于UML的高校教务管理系统的设计与实现 时间:2018 出版源:南昌航空大学 领域分类:教育信息化:教务管理系统:UML:SSH:Oracle 二.研究背景 问题定义:高校教务管 ...
 - Python登陆人人网
		
#!coding:utf-8 import urllib2 import urllib import cookielib def renrenBrower(url,user,password): #登 ...
 - 《基于 Web Service 的学分制教务管理系统的研究与实现》论文笔记(十一)
		
标题:基于 Web Service 的学分制教务管理系统的研究与实现 一.基本内容 时间:2014 来源:苏州大学 关键词:: 教务管理系统 学分制 Web Service 二.研究内容 1.教务管理 ...
 - python requests模拟登陆正方教务管理系统,并爬取成绩
		
最近模拟带账号登陆,查看了一些他人的博客,发现正方教务已经更新了,所以只能自己探索了. 登陆: 通过抓包,发现需要提交的值 需要值lt,这是个啥,其实他在访问登陆页面时就产生了 session=req ...
 - Python 员工信息管理系统
		
学Python将近一个月了,第一次写了两百多行代码,一个很简单的脚本. 员工信息管理系统: 需求: 1.管理员账户能够增加,删除,修改,查询员工信息,并且设置管理员账户. 2.普通账户可以查看所有员工 ...
 - python作业学员管理系统(第十二周)
		
作业需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的事情不同,分别如下 讲师视图 管理班级,可创建班级,根据学员qq号把学员加入班级 可创建指定班级的上课纪录,注意一节上课纪录对应多条学 ...
 - python  登陆一个网站
		
今天想用python写一个登陆的脚本,搜了一下,网上挺多的,看了一些后写了个登陆虎扑论坛的脚本. 原理: 只要在发送http请求时,带上含有正常登陆的cookie就可以了. 1.首先我们要先了解coo ...
 
随机推荐
- poj 3277 Mountains
			
http://poj.org/problem?id=3227 #include <cstdio> #include <cstring> #include <cmath&g ...
 - 体验Lua
			
想用之和NGINX结合,终结公司混乱的NGINX配置 玩起来先,感觉很精简,很实用哟. print("hello world") a={,} b=a print(a==b,a~=b ...
 - xcode安装
			
Xcode5.1默认不支持iOS5版本的模拟器开发调试,在OS X Mavericks(10.9.x)下默认只能支持iOS6.1及以上版本的模拟器,在OS X Mountain Lion(10.8.x ...
 - [每日一题] OCP1z0-047 :2013-08-05 SELECT语句――列的表达式
			
按题意操作如下: hr@MYDB> SELECT first_name,salary,salary*12+salary*12*0.5 "ANNUAL SALARY + BONUS&qu ...
 - java--对象比较器
			
在实际的项目中,经常会遇到排序问题,对于基本数据类型java支持Arrays.sort()和Collection.sort()对集合进行排序,但是对用户自定义类型排序呢?java给我们提供了两种解决方 ...
 - (转)iOS分类和扩展(Categories和Extensions)
			
分类(Category) 分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法. 此外,分类能够保证你的实现类和其他的文件区分开. #import “UIView ...
 - lesson3.1:java公平锁和非公平锁及读写锁
			
关于这四种锁的各自情况,网上有很多文章做了介绍,本不想单独开章节介绍,本章只介绍这四种锁的一些源码特点及注意事项. demo 源码:https://github.com/mantuliu/javaAd ...
 - 最好的Laravel中文文档
			
分页 配置 基本用法 给分页链接添加自定义信息 配置 在其它的框架中,分页有时很痛苦. 但是Laravel让分页简单到不可思议. 默认Laravel包含了两个分页视图, 在app/config/vie ...
 - IT English Collection(16) of Message
			
1 前言 本文介绍了关于Objective-C中的消息机制,详情如下. 转载请注明出处:http://blog.csdn.net/developer_zhang 2 详述 2.1 原文 A messa ...
 - C# WPF 建立渐隐窗口
			
需求: 一些无关紧要的提示信息,不显示出来怕用户一头雾水,但如果用对话框显示出来,用户又要动手把对话框关闭.不说别人,就是程序员自己测试时都觉得麻烦! 解决方案: 有两种选择 1. 选择是用 labe ...