已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
python实现登陆教务系统查询成绩 02083100陈颖目录背景介绍31.实验准备.32.实现过程33.问题讨论64.结论.7参考文献8背景介绍Python是一种面向对象、直译式计算机程序设计语言,创始人为Guido van Rossum。这种语言的语法简捷而清晰,并且具有丰富和强大的类库。python常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C+)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C+重写。第一章 实验准备为了模拟登陆教务处系统,需要弄清登录时向网页提交的表单内容。通过用wireshark抓包,可分析出提交内容的格式。如图所示:第二章 实验过程Python代码如下:# -*- coding: cp936 -*-import urllib2import httplibimport cookielibimport urllibfrom BeautifulSoup import BeautifulSoup import reimport hashlibclass LoginJWC: def _init_(self): self.cookie = cookielib.CookieJar() self.httpcookie = urllib2.HTTPCookieProcessor(self.cookie) self.opener = urllib2.build_opener(self.httpcookie) urllib2.install_opener(self.opener) def getpage(self): global url0,url1,url2 stream = urllib2.urlopen(url0) buffers=stream.read() r=pile(sharedValue = -?d+).findall(buffers) p=pile(-?d+).findall(r0) self.sharevalue=p0 def login(self,uid,password): global url0,url1,url2 temp=str(hashlib.md5(password).hexdigest() password=str(hashlib.md5(temp+self.sharevalue).hexdigest() enparams=uid=+uid+&password=+password+&sltType=+str(%D1%A7+%C9%FA)+&Submit=+str(%C8%B7+%B6%A8)+&command=+str(studentLogin) headers = Content-Type:application/x-www-form-urlencoded,Connection:Keep-Alive request = urllib2.Request(url = url1,headers = headers,data=enparams) stream=urllib2.urlopen(request) self.result=stream.read() def getscore(self): global url0,url1,url2 stream = urllib2.urlopen(url2) self.scores=stream.read() print self.scores def auto(self): self.uid=02083078 self.password=8189613 self.getpage() self.login(self.uid,self.password) self.getscore()if _name_ = _main_: uid = 02083100 password = 19621007 choosing = True while choosing: choice = str(raw_input(choose your net(jiaoyu or dianxin) : ) if choice = jiaoyu: url0=26/xdjwWeb/index2005.jsp url1=26/xdjwWeb/Servlet/UsersControl url2=26/xdjwWeb/studentStatus/queryScore/query_person_score.jsp choosing = False elif choice = dianxin: url0=32/xdjwWeb/index2005.jsp url1=32/xdjwWeb/Servlet/UsersControl url2=32/xdjwWeb/studentStatus/queryScore/query_person_score.jsp choosing = False else: print your net can be only jiaoyu or dianxin bb = LoginJWC() bb.getpage() bb.login(uid,password) bb.getscore()运行结果截图如下:第三章 问题讨论估计入门时都会遇到的。我是在windows下用的Python25自带的IDLE编辑运行的,发现运行脚本得出的结果有一些中文显示是乱码,但有一些是正常的。百思不得其解。首先查看了一下源文件的编码格式,是UTF-8。经过搜索再搜索,调试再调试,也换了几个编译器,发现比IDLE还糟糕(可能需要进行encode设置)。问题终于解决了,一共花了将近5个小时。 乱码原因: 因为我的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件。但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了。 解决方法:在控制台打印的地方用一个转码就ok了,打印的时候这么写:print myname.decode(UTF-8).encode(GBK) 比较通用的方法应该是:import systype = sys.getfilesystemencoding()print myname.decode(UTF-8).encode(type)第四章 结论Beautifulsoup是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree)。它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。它可以大大节省你的编程时间。但我这里并没有用到它,因为一用它就乱码。之前遇到过这种情况,但当时在文件开头加一句# -*- coding: cp936 -*-就能解决,可现在不知
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蔬菜栽培工QC管理竞赛考核试卷含答案
- 工程机械装配调试工班组评比知识考核试卷含答案
- 复印设备制造工改进模拟考核试卷含答案
- 装岩机司机班组安全能力考核试卷含答案
- 职业指导师变更管理水平考核试卷含答案
- 病虫害防治工岗前安全实操考核试卷含答案
- 眼镜架制作工诚信道德考核试卷含答案
- 2026春季防晒知识测试题课件
- 企业信息安全防护策略预案
- 基于云计算的云服务安全管理与合规操作手册
- 2025年河南豫能控股股份有限公司及所管企业第二批社会招聘18人笔试参考题库附带答案详解(3卷)
- 2025“才聚齐鲁成就未来”山东文旅云智能科技有限公司招聘2人笔试历年参考题库附带答案详解
- 拍卖车位协议书范本
- 按揭房屋赠予协议书
- 子痫应急预案应急演练脚本
- 肺小结节科普讲座课件
- 武体院体育管理学课件11社会体育管理
- 脑血管造影科普课件
- 软件系统集成联调报告模板
- 2024-2025学年山东省淄博市高青县八年级下学期期末考试化学试题
- 国家开放大学《大学语文》形考任务1-5
评论
0/150
提交评论