正则表达式提取主要内容
正则表达式简介
正则表达式(Regular Expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
总之,正则匹配是一种及其常用的提取子串的方法。具体用法请参考相关文档。
测试正则表达式的方法
打开Notepad++
先把返回内容粘贴进去
然后按Ctrl-F打开查找界面

选择正则表达式,勾选 .匹配新行,然后输入正则表达式,点击查找下一个即可。
提取返回数据的主要内容
CAS登录ticket的提取
由于请求1和请求2是单纯的跳转,没有设置任何Cookie或传递其他参数,这两个请求直接忽略,从第3个请求开始匹配
name="lt" value="(.*?)".*?name="execution" value="(.*?)".*?name="_eventId" value="(.*?)"
这个正则表达式提取了括号中的内容,即lt、execution、_eventId的值,直接使用提取出来的这个值,发送第4个请求。
CAS登录成功后跳转网址的提取
登录成功后,匹配出meta标签中跳转的目的网址
url=(.*?)"
然后发送请求5。将返回302,对于302我们不需要任何处理,程序会自动跳转,自动发送下一条请求。
自动发送请求6,然后返回了师生服务首页,这个我们不需要的,不进行匹配。
每一课程的评教链接的提取
由于教学评价的首页的真正网址是请求11的网址,所以发送请求11,并用如下正则表达式,提取出所有的链
<a href="(.*?)">评教</a>
不过这回要把 .匹配新行 的勾去掉。
然后使用这个网址发送请求8,返回了具体课程的教学评价页面,匹配出所有的表单数据
评教表单的提取
首先提取提交表单的网址。单行匹配
post" action="(.*?)"
然后是用到的一些基本数据,也不需要知道什么意思,拿来直接用就好。都是单行匹配
wid_pgjxb" value="(.*?)"
wid_pgyj" value="(.*?)"
这里有个表单项type,值恒为2
继续是基本数据 都是单行匹配
sfytj" value="(.*?)"
pjType" value="(.*?)"
wid_pjzts" value="(.*?)"
status" value="(.*?)"
sfmxpj" value="(.*?)"
这个是为了把每一行的评价指标区分开。多行匹配
教师评价(.*?)</tr>
然后在每一个指标提取的文本内继续提取所需的表单。单行匹配
zbbm" type="hidden" value="(.*?)"
(wid_.*?)" type="hidden" value="(.*?)"
(qz_.*?)" type="hidden" value="(.*?)"
(pfdj_.*?)" value="(.*?)"
最后这个可以提取到5个,就是评教的5个等级,只提交1个即可。
ztpj(总体评价)和pgyj(评估意见)都是固定的表单。
通过分析js代码得知,“提交”操作的actionType始终为2,type也是根据js确定为2的。
然后就可以POST这个表单了!
提取评教成功后的页面
返回的结果也没什么意义,就不匹配了。