正方教务系统课程表开发_第1页
正方教务系统课程表开发_第2页
正方教务系统课程表开发_第3页
正方教务系统课程表开发_第4页
正方教务系统课程表开发_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

正方教务系统课程表开发(共10

页)-本页仅作为预览文档封面,使用时请删除本页-课表开发流程用户通过教务处查询到课表的流程如下:1、访问教务处登陆页面,填写用户名、密码和验证码,提交,进入教务处。2、找到查询课表的地方,点击进入。这几步实际上也就是对教务处的请求操作,只是通过浏览器实现罢了。我们通过开发实现该流程步骤如下:1、模拟登陆、2、读取课表页面、3、解析课表页面得到课表数组数据。以下以淮阴师范学院(正方系统)为例进行介绍,其中模拟登陆和获取课表页面可以通过浏览器的交互来进行解释:一、模拟登陆这一步的主要作用就是获取cookie,因为访问获取课表页面时服务器端会对是否已经登陆这一项进行验证。首先访问登录页面,输入用户名、密码、验440117iEiina|土言件usttUAq£戏9■-Mi,hTXElkSSflaUW*fiTSTEmmyf这一过程其实就是发送一个post请求:1、用户名、密码,由用户自己输入;对于验证码,我们只需要访问对应的验证码地址,然后将验证码呈现给用户,供用户自己输入即可。验证码的地址可以通过在图片上右击,在出现的快捷菜单中点击“复制图片地址”获得:教芳管理系统[就“了侦*教芳管理系统[就“了侦*方尊昭Wmtn珅花写就HgyinNormalUni^/eraity用户登录上已母川■用户君开St*曲正方灿蹄棚月些司2、RadioButtonList1,Button1参数的值是固定的,分别对应与页面上的两个input,可以直接复制:HuarvnUrawWifiLM-HtWi--SVHP-CHUI-»Qa(tJl*-制IE-X^hbE■-思成ign助场*I<^iCiM-呻K-I:i>i.1&»|:|5&)*>:哽s-TS-Znirm-r+log乳品站匚血bbUj^iaicririi^-lA2rv^eyHO?"Mwi>bbUj^iaicririi^-lA2rv^eyHO?"Mwi>mi-CM产1£IL:IXr■卜cnJCEmffLMpa中,由fFi:E日5*LW电11■砰用iJm•的EtIMrr«mAj,ia|j|-|jBJI-jjnSJr-OIjSHi^l.C«**E"STsrk-LvwwbwrW,..LLxErM^Fk:HIT^pc■^L^K^an.'B-Mb-fcrirhr^wKMcakkwcJdJ.iJM.lJ].Lc£>慎•我"Tllni'iJWIM-LU-皿b-'BP'Mnp-wthc厦EU«Tt3:.OML2.]P3^.]39.1*?/*12i>AvliHEfrt'W.MIIiM-lLImi'Jfcbalj]LH>*K凹灯.39naik«l:小}UhL_WI*1WWJWEH--MfidMCwjp^SjM.aMi•■岫nt*W3fajInolAhEi**#art■中rr«*:4JfrdC^jiH»^nMRrmraCsMprti^-CIEMknm-C—WL:*!■6YW*TpP«.E+^EiTV3^;flfa-JdE-fEJUlLUII41un-Xri・IIC>-3bAT3、__VIEWSTATE和—EVENTVALIDATION,这两个参数是页面上的隐藏域,通过查看页面的源代码可以看到:所以我们需要做的事情如下:一、访问登陆页面,得到隐藏域的信息:□uuLitaa・5旦口姑1・|.虬11・1_"1]_1,山^「1«1!,访问去降JJ面一^^.「霸蜀目站翼而面档螟班业盂3ilftdsAL.AXi:■丫」■MM^l&Bb&ddM_jbrciiir1i9fiL&B・l,w_gch—・>flmpa・u・Mdatu4虹・「二33«:-1%穴卜.f』

pibiacra/KUQill-«'KaMaCII5p*THni■■J.£lBp«rt[r->]-EwLa—nl・[-^J口n*«i・I.七"・「,|琦EiaLiH-Uf.^7f\"I"i]**11・”-^8也£恿1地丈表醪乱膜至葫5fb.41-3■tsmyjjjifiD™_rMiMti_41]liHrtm.JaciiKit;.Jhiddenjuwti)11ivriiaA±n_hdi:4n|占土SEivLditT}-!Fh3dS«n_rwE-=h|?]I|Ecp:jpiGtca■■■■!riuif,i"ir,UL~#lniiptf■'!—|]3«「广|.-;>_|・、心1.七'1・,.「]\_*[-?,_1叮:匚「心=1|afI]IfpRCB-rn.FhadEifl-n^rMc.di)|^Il-^ruch|j«huiEHhnruic,ch|L]“SE">Sr|iirieldSSv]-*hESenjuwhl:lMmiSpi-LBra.十viapcrU■*■>;]«■3nu■■气-iMJ]\B[A>|■*■日i.-W.nJ■lEVF«"\^M.ddin\"|■>]■帝七ifiBTM_ri4iMh_al]liMreni.JhiddMjuwhJIiiQf44X!riivriiam_nd>:4n|占*i5El«Ld]tw]-:Fh3dS«n_rwE-=hi?]I5p*THE3-".■■£i=FE.r.r'>|-*7vi.-u»-V.B,|.^7JSB|->p7raxw-L[.、Il\・厂:■|♦】i=、p»-4FLdd«rATF]"7S-^la■,::L\[WpAKiirn.Scast-iac,Sh^ddia_rMiC€hj||for^MhiShidrienjifiwh::I-s»Jo—>#vii-TL3dfcn_rwc-=h|L]l|-PD!|li>M.fCd■,■.■<i_[-ir|■■«|■•^v|liJt-,i.BliB,'j,.,|J>|,?r.TI™-"ritrtr'lU\"s'.■'.■■?「'LU"”“』sfIr1IVpancrn.-lhxdiia_nnwc?h'>IIf-sruchISh3dd«in_nc.-=ti|昌■I5i:l«ldi5Ti二Sts^d3«n_ruiE.=h:.]dSpL^ara,■十Ei-■!■>]■•fwl&v■气,(.・外*・||七:-«—s;.,•¥)%T.=■]"队/林七hT]uwti_iL]]$r:tm.上dos临,wh,d妇JUwh'11breachl¥hidriai_nDC-ctijT'|-axI5Ei«ld-£bsd^in_iut=h:mSrn.后:土*Tf^fi《白£耶工——吁―■T|ijmf.■•JtrKl七彖<ILi]」、n《耳用口星道蜂5・/>《■xif尊耳B巾。混心•北■■户每b.审三、将隐藏域信息、用户名、密码、验证码和固定参数拼凑起来,作为登录请求时提交的参数,发送登陆请求:■7—心:pimidifEHflLlC£tiijI■iihJid^qpTijoci|i,aMCU:_lcfli4_.iilB|/LfI!E.虹]■・・pfc»=arrhadacn_g:e了IJ■:5F-Erxc«U"JThia-:?paitnd.■!■.5Th5J-j4i5adi=LS?&v"—折i**■袖=*巴IifISEi±*-ici:cinQr,<3a_-±*l«=,1—'xr-s'H5F'CHL_!=i«E-a«5-Ehu»e>q«E_parE,_m|■iiwuQrCBPD3nfa'^i!«MaxLli«,rE.E>i,OiMkrujmi.j.—f(SniC^IkinOiH»/rr.b_9M9_lMA«±ud/EH.UEad»£lxadG..bB■OffiHflMiCXliaiflil"»CT*X4IW«r'r^D!-[XIM5i:SThl3->JIK_Irtilfiid-TXMLCCIUerWMTIHO3浦TtW-OZhH'r3.1•□inilS-KftiJaD|LiarIifU,.-1.1I,.*工―甘]卜/)|P5pai^_diiCH!:Ik^HOiL£l:fthu-Mpt-L»['坪.新土响1]3-£TJJ‘II■FdLT_i3*E^"EThbM^q*^j■jET45fCB35|TliM&B->l£C-Llft[fl.-J[il%;.•机:虹吁心.c危口土■+«6l■土H\.■p?a^_d<tali!■EmmswmEziF港鸟迎营一咤WP工衣也号"斗,、冲牛…=…J……J……4■.……4■.……4七M■.王WE号.垢ICT■…•.………………“…3………“…-*/Sil-;'qu_aAU■•SL^J-r-?f;i3ri:i,5ur^^5purL_-a«u...EnJ.1,iiaLl,naLl|;/^FS&3E_XI:fllb41&_d&-=L|l||"^ib.坂苫■£傩清节,flc^udAter1siojLri_diTft|-c»nr«i[-1r¥r±lv-:|-l'3gaiid«Qfl."|tl«gud*-i.rSloqulhUL:3>:"lE{Ll.n_3MUlTI5-1Ci^±zdk'U)?Lf1151jj|Egjwzmn]虹一中日I¥ril»-:,-?iT_^E-:l|ca.iir辛axLt^pcrT_-d«r^.Jr:r.uin5pai^_dAU.-••5-Lc^iiij_d&Xflir■H四、通过解析登陆返回的结果得到cookie信息:-‘'■»岫」iz-一…严!>』<-皿1I!rakxp土IFi»|UI_MXJbjIP・THFP*fflf4—■•FFIHM.+TWW3EF1:1■:'T"'―纣,r:1PjTl-'tr11®1WF:JHH"jlSIEll'-r--■■.北二T.r--g:J:='IIF+Lwl■CB,l.fc-:MU*^a■*IHf_>MfB_IFW.IIVibiaUU*->BUM4***'n*l>!'"'-IU>l:-*^.-l>U£*i*B|-_-U«»a•■■HOM"*■**<-1.--4£.|*r"41-':*~■iJrrmwua.-二、访问课表页面界面操作方式如下:■0-以加S3顷■■■■慢*/[■三―」■□北■*1•4t#■*1•4t#H一Ate,财mAi台HH这个过程相当于get方式请求xh=1&xm=%B3%C2%B3%AC&gnmkdm=N121603,需要带上登陆时返回的cookie信息:■WaneihNr£aliTiiliHMhUunjKEuiriril心章.口由事心章.口由事_>™bmai■的侦蛤甄A■乃«.于寻冬、、w|_]FFErvAfuIIkmjc»•_i】**村仰*同户堆古,可「百上脚技再其中用户名在模拟登陆的时候就已经获得,第三个参数是固定参数,用户姓名则需要通过访问主页得到html,解析页面代码来获取:本程序中的http请求通过curl函数实现,而在登陆的时候进行设置跳转为1,如下所示:curl^se-tcpt(^curl,11皿。吒知1.LOULOCAT工伽』..土.—Jufit....1nminrx-rairrrLni-ri-ni-n/,,登陆请求结果就是主页。所以我们需要做的事情如下:一、从登陆结果中解析出姓名:/j绿云示点白或口嵯理旧卷龄位5rtiatcnn{Surll=!Phttp!:〃七Jjwc-3optton[whos.t'"J-Jjwc-><iption['"cas._url"]-F/xMjnaln.aspx?xh="_$jw£->jwc_nante:tfSEB—MMch「Jcspanlcl=F:Mhxmr[-F]C/spanxWE(n>m$<j5crnarns二物心七匚h「ll—Jjwc->user_nnme=5ub5tr(5u3er_naTEJi0Jstrlcn($U5rr_nonr)-S)J二、get方式访问xh=学号&xm=姓名&gnmkdm=N121603,请求需要带上登录时得到的cookie,返回结果就是我们要的登陆页面。5rtiatcnn{Spc>£t_da^a.>rray()|.W|iciE.UcinE[["x,广]■■■的9!,Su-L-'http;//*.JjMC->c>ption["heat"].Jjmrc->Gptiwi["cfl5_wrl']."/Mskbcw«m吓斗h—.Jjuc->jwcHHPt广站nr^5k・FU2W,洒->cptinn["grnkdni"]:Skeblao■ikebla€_daT3[sconie^t~];cnrl_setop-t(i-c'Liil,uTJRr.OPT_CO-&KIE,a-t.'i^s->cook:ies);

三、从课表结果页面解析出课表1、我们先对课表页面进行分析,课表的html代码都在一个table之中,这个table的id为Table1,从第三行开始是课表信息:其中第一列是“上午”、“下午”、“晚上”,第二列是节次:敦日1-514(调0173)frfT体育市场营销学周一第京节潦5-17周:节李慧娟教目L-514(调0L7S]JhrJh—弟节健康教育学

周一第事节十第*17周JhrJh—弟节教B1-516我们可以用正则匹配出整块table的代码,然后通过正则匹配出每一行,从第三行开始解析,对于第3、8、12行,由于分别是“上午”、“下午”、“晚上”所在的行,从第三列才开始解析;其他行则从第二列就开始解析:

■灯RM-:DXIIhK+■皿■VUL^.MC^II_ftHij4-h4H|I:■*■-><■■iElILKiK^IIMH:>j|-Bi.rw:i|i:W■MTBagi1EuLK-.dkoil•展U3A■s尊戒Kriii-"Bti-fil战.源刊:・|尊*)■!.肩5ae由in"F4^Dii:i:・村5\/人:工7u*¥部.■3I|■代码如下:if(p™H_rutch(rL±Jhl<,C:Li...・V'blauk虹硒p.yXt.HXWXbLiiW,H>LnCk»{^kabdjc-fblc-=k;JL";if|pmg_«itEh_jll('Fctr『:."1j??(.■"?)<rXlMbiK3r¥_bLccfc)3*cb_cwjrMi=■*i■If&ch"J)l心[H]as-/■/priiit_r(Ssw_blKk(2])j虫・2?心「—试心旨jhA■呻并|IfLp£t»(Si--2I|fc»7|I"■Li)U-*«-:nki:-具-,.lME=nd-($c--3||Sc--4||—5||X■・$||(c—B||frc—fl||fc«»IS||$c—12|||«—13)EiJajJi,.»=F>?.八.!:—奇TF[Stu-HtIS~Iwfity(Skta^ciu-HrLfs-1JLJJ)[centime;}*Lmi-f^second141wty〔!5icb_Eurx[!wH”-l]JHcoitimej1Skowsoan-sstrblockriirihlL2、接着分析每个td中的内容,一个td中可能会有多节课的信息,不同的课之间由四个<br>分隔,其中如果有调课信息,则中间还会有一个font标签,如下图所示:R网中蔓置阮H-B:冲R网中蔓置阮H-B:冲rUMI®rawWU.-J14ETiHUP4-9LIHEU.■口Efct.ii:H=XiJ*■:HS-aHi邮财M>24M>:9!电■:.ERAL戏:了了fl.0SWMPTTH^^**11■■mTHP*■—■rtipJEkkrlwFttfIfE4n而「•■WrtrlE^jtt•■-fU5|4ui*-pMir.LU,广■:J-*■iE*pcr叫.・p&』Hi*g,■cr4E>U^Tal4ir:■ru'MIM-'C8,L-|Ur':■£?■:itffFStASWwi>Ai■WJlfl-5Oifi-WiZ■花备码渊•Ew

■H同一节课的课程名称、上课时间、授课老师和上课地点信息则都由<br>标签分隔,如下图所示:ItWFiMHHieHL亦佃TH*•02-514BAAlwtt曲9iZ«L1__r.LH?K—4Ml"L■,■■、-,_fl虹蜘柘咄营由■*!甲fcWifi**仪81!*,“*1二lirf^jrLnz.-Jlihj■口43广.里皿.;L」F土卜・-力》31fddrM】%:黑4特-7如指,・-«■<**-dni-L5->LJj*il*48"glfiB-''Ki-'t?cr>皿口卜7¥*心3点・."-rdifer3«-^iL*h:]«:"?:a.—Ekjo't?cr>皿口卜7¥*心3点・."-rdifer3«-^iL*h:]«:"?:a.—Ekjo:,ur?iw代码如下:iys=preg_5-pLit(Kbr><br?C?;<font.i-?<'\yf?nt.s)?(tbr?<br.>*ifu'^lyl)g曲心前$严X扫4如g「5T=ex|il-E^E(1<brj|,j.$y)jfddta-£iv&y();$d4t:a['cou-ienBne']=$cnyrm管Q0]j.if(etnpty(J^r-aurse[B])||^r-uursc-[B]1finbip['){continuti}f_te*p-pK'eg^replacef」}时'r'PScourge[l]}i$_t«p»str_rEplace("}i-^temp)eCte*p-strZ^Eplace(H:\.,■\sZtwp);$ddta['coiirGitiMa^k']-if[strpc-jftdjtH['cau-teweek']4"S")>8)(IdatafCours.tsingle!]-lj,['cou-seueek']j.*0门冲){功占td:"w「Stsingle!]-fi上)^data[!courscweek']■preg^_replace('料|.*?.rltan5'""^Jdata[*cau^sewee-k']);$data['cou'■sflpL-scc']-ltour5-e[3]jJdata['cou"setescher"].Sc<wr&e[2]fifl>-fir3t)[lf(!t$kb_c-iHjr£:&[$«-1][S1])3(Skb_c^uirs!»[队-1][?i]['qfXjrwnM』*]))■(Skb_cou-se[ls-1][Jd]['c-ourseduring']=str_repl-sceC'#「』'『j.5-tr_repl.a!:e(''.a'j'r』mh_EU「w[*x-1][Si][1cours-ENecik']))j却m3[1c-ourswduring'j--i.tr_r«pljcfii(1111J.£tr_rcplacci(1.ip'?'11$dat[1dxirLMaak']}):^d-st-a['c-ourseduring']=str_rffpl-3Cff('目L''』5-tr_repl.»cp('s'j,■..fdet-sj'匚口」<■5-eweek']})jMkb.BUFW虐[5-:<-1][fl]■aFi'ay(Jkti_ccurs.e[转-1][(L]);}kb_tourie[Jk-1][fi][]=Jd^taj}elieif(!efipty(:tkb_ciaurie[Sw-l][Ji])鲍wiptyf5kti_C4iurse[Jy-1][^i][acnjjrsenawe*])}(如砒d['cuurse-during']-str_replaceij'5r3'*jstr_replisce('3ft'3''j$dtsta['cixirMn-eek']})5^data['c-aurse-during']--5tr_replace(r?"■r■,str_rcplace('1r'.'"a(data[1cajF-EMEel1]])j^kb_coui-5e[5K-l][H][J.板1g;"'Jslseif(issrt(JdBt2i["cour^esingle']J)(3kb_cou^se[S:<-1][Si][].$dg;}=!«{$kb_£aLi^i£ti[$^-i][$1]■)-eliei-f(f-u£ond)(Sc<j1=St;3、整个分析的过程体现到代码上,再加上一些具体细节上的控制,最终代码如下:^Hildi--,|'"i:iCnT«i1E'T^»:CitXt.ilirBl;ChK"L*t-BCfH|p-ELW!tcli("1JrC■!]■»'i/tiblc■/-*»'iIcmlmtj>bL”kJ•二1、SceblM・少Mrhl+nEF.!^-!*4_iM-=h_a]l-!}.・町tV”可Uii.cturH■S-L■-Ij■Fo^eichii_i]Kk[6-]Hff»^_ME£h.LH,j*v史配,.■5,Jc,i/tod>/L*«t!,物-ItTk“utc'XArf■匚一Td.hr.-lcrwh8:ta.t-_kl£Kk|153-.^L'|-|SfLFlt«(i^EiIIFC■■TIIk"■ll;iji>X■lj.'/*-*WlSx■T«15tCjXWh(9C™3II1£—d11M■■»11K.■■由11:M-><9||K"■?||K"-W119<II||"U9J4$UJ.上■■哩二演曹疳危^押;■早三..彳二身」,■?-pcii-a-c.ix^>r:峭叫项M心L・”*{■mLniij}NlixLFHmEJflccj["SKiMgCAAtLliii-i1U-XjWiFi-35Cl"_bLC<VLi][!k|l-'.'PTfAJ£F|'pr*^_«cchj"“皿中■■■"*[Tt)、—、$^aw«pvil.EfHuLtl]{lnw«FHi-S-iiuLt|LJj卜,■拼[//si-■TsuiHtyr■&frj-Ur.■■!■■",-R*w.-v■■-fvrwdi(SyiLaiMfMUlEkJIFFByl').1dlEik('CiZdrUai'iitra'|■«^ccurH[&];Hl.wplyl.5cA*"H[bJ!■11Srm^■!£¥!■■'ittmi.:1|打=“・匚1?.«hTFVB*P-■-“E>»W.f」fL:七-F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论