前几天刚实现了一个,难点主要有3块:
1:http头部模拟
2:在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步,

http://www.laruence.com/2011/01/20/1840.html
3:post的数据,有几个字段是用js计算出的,需要用php模拟出
附:curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($data))
报错那句代码是因为:
TeacherManagerBean是你的类名。
你类的别名T是小写的。
把
TeacherManagerBean.printMsg()
改成
teacherManagerBean.printMsg()
简单的设定:
以下程序默认条件:
该表单仅有一个用户:用户名和密码均为数值型123456
用户名文本框名字为text1,密码文本框的名字是text2
那么登陆表单的确定按钮代码可以设置为:
if alltrim(thisform.text1.value)==123456 and alltrim(thisform.text2.value)==123456
messagebox("欢迎使用,登陆成功!",0,"提示信息")
else
messagebox("用户名或者密码错误!请重新输入!",0,"错误信息")
endif
thisform.refresh
首先引入需要使用到的模块
import urllib
import urllib.request
import urllib.parse
import http.cookiejar
接下来将POST的链接用一个变量保存下来
PostUrl = "http://your school's
ip/default6.aspx" #填写你学校教务系统的ip
接着创建cookie对象,handler对象和opener对象
cookie = http.cookiejar.cookieJar()
handler =
urllib.request.HTTPcookieProcessor(cookie)
opener = urllib.request.build_opener(handler)
赋值用户名和密码
username = 'your student id'
password = 'your password'
接下来创建需要提交的表单信息,保存在一个字典变量中
这个时候需要根据刚才POST的表单提交的信息来确定字典的内容(不同学校会不同,因此需要视情况而定)
从刚才上面的截图可以看到,Form Data的内容中出现了一下的情况,
因为浏览器默认是utf-8的编码,但是教务系统是gb2312的,所以这里的中文就无法显示,因此我们需要查看一下登录页面表单中这两个中文对应的是什么控件,这里分别是“学生”还有“登
录”
表单内容
接下来是header部分,这部分直接复制就差不多了
header内容
然后就是生成post的数据和构造request请求
生成post的数据和构造request请求
最后写一个try打印出登录后的页面即可
输出
输出情况:
登录后页面的内容
然后使用正则表达式去匹配自己需要的内容就行了。
以上就是关于PHP怎样模拟登录教务系统?最好有源码实例。全部的内容,如果了解更多相关内容,可以关注,你们的支持是我们更新的动力!
版权声明:我们致力于保护作者版权,注重分享,被刊用文章【模拟教务管理系统的代码】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;
工作时间:8:00-18:00
客服电话
电子邮件
beimuxi@protonmail.com
扫码二维码
获取最新动态
