想试着模拟登陆一些网站,这次先拿学校的教务管理系统练练手,写一下登陆的流程。

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登陆教务管理系统的更多相关文章

  1. Python Selenium + phantomJS 模拟登陆教务管理系统 “抢课”

    # _*_coding:utf-8_*_ from selenium import webdriver from selenium.webdriver.common.action_chains imp ...

  2. python获取教务管理系统的MM照片

    前提:你的教务管理系统是明文存储大家的图片,加密的图片就不好弄了... 也就是能够通过浏览器直接访问...技术上就不存在什么问题了...如果是学号存储的就更方便了 然后我们就可以写个小脚本了...其实 ...

  3. 基于UML的高校教务管理系统的设计与实现

    一.基本信息 标题:基于UML的高校教务管理系统的设计与实现 时间:2018 出版源:南昌航空大学 领域分类:教育信息化:教务管理系统:UML:SSH:Oracle 二.研究背景 问题定义:高校教务管 ...

  4. Python登陆人人网

    #!coding:utf-8 import urllib2 import urllib import cookielib def renrenBrower(url,user,password): #登 ...

  5. 《基于 Web Service 的学分制教务管理系统的研究与实现》论文笔记(十一)

    标题:基于 Web Service 的学分制教务管理系统的研究与实现 一.基本内容 时间:2014 来源:苏州大学 关键词:: 教务管理系统 学分制 Web Service 二.研究内容 1.教务管理 ...

  6. python requests模拟登陆正方教务管理系统,并爬取成绩

    最近模拟带账号登陆,查看了一些他人的博客,发现正方教务已经更新了,所以只能自己探索了. 登陆: 通过抓包,发现需要提交的值 需要值lt,这是个啥,其实他在访问登陆页面时就产生了 session=req ...

  7. Python 员工信息管理系统

    学Python将近一个月了,第一次写了两百多行代码,一个很简单的脚本. 员工信息管理系统: 需求: 1.管理员账户能够增加,删除,修改,查询员工信息,并且设置管理员账户. 2.普通账户可以查看所有员工 ...

  8. python作业学员管理系统(第十二周)

    作业需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的事情不同,分别如下 讲师视图 管理班级,可创建班级,根据学员qq号把学员加入班级 可创建指定班级的上课纪录,注意一节上课纪录对应多条学 ...

  9. python 登陆一个网站

    今天想用python写一个登陆的脚本,搜了一下,网上挺多的,看了一些后写了个登陆虎扑论坛的脚本. 原理: 只要在发送http请求时,带上含有正常登陆的cookie就可以了. 1.首先我们要先了解coo ...

随机推荐

  1. ural 1348 Goat in the Garden 2

    http://acm.timus.ru/problem.aspx?space=1&num=1348 #include <cstdio> #include <cstring&g ...

  2. jmap命令结合mat插件分析内存泄露--OQL

    http://smallnetvisitor.iteye.com/blog/1826434 User.java package gc; import java.util.ArrayList; impo ...

  3. Java---设计模块(值对象)

    ★ 场景和问题 在Java开发时,需要来回交换大量的数据,比如要为方法传入参数,也要获取方法的返回值,该如何能更好的进行数据的交互? ★ 基本的编写步骤 ◎第1步:写一个类,实现可序列化(如果以后数据 ...

  4. HDOJ 1248

    完全背包. 模版. 物品的价值等价于体积. #include <stdio.h> #include <string.h> using namespace std; int ma ...

  5. MySQL 遇到的问题:在服务里找不到自己的 MySQL,以及在命令行窗口中运行服务出现的问题。

    1.用数据库的时候在服务里找不到自己的 MySQL ,于是就想用命令行窗口去运行. ①.在开始里,键入 cmd ,打开命令行窗口. ②.输入:mysql -u root -p 回车,这时会提示请输入密 ...

  6. WPF Customize TabControl

    有篇很好的文章 http://www.blogs.intuidev.com/post/2010/01/25/TabControlStyling_PartOne.aspx 详细介绍了如何Customiz ...

  7. bat文件调用shutdown命令不生效问题原因

    背景: 本人使用云桌面办公,但是用于登陆云桌面的终端运行卡顿,每次开机要20min才能登陆云桌面,所以: 1)在BIOS设置了定时开关,让终端提前开机 2)在系统上层,开机启动项增加一个bat文件(s ...

  8. Windows移动开发(二)——闭关修炼

    一些武侠小说里的大人物,为了争夺武林盟主,号召天下,常常闭关修炼一段时间,闭关期间仅仅能接触送饭的人,而且关外还有非常多守卫的人员.还有,不管是篮球还是足球运动员,他们在真正接触球之前,都必须做非常长 ...

  9. Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子)

    Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子) 由其做动态编程时非常有用,必须符合js中的语法,用eval能够执行. var aaa="alert('这是变量中的语句')&q ...

  10. 10个热门IT证书

    MCP (微软专家认证) CCNA (思科认证网络支持工程师) MCPD (微软认证开发专家) SCJP (SUN认证Java程序员) CISSP (信息系统安全认证专家) CompTIA A+认证 ...