- 金属破碎机
- 破石机
- 石头破碎机
- 颚式破碎机
- 反击式破碎机
- 锤式破碎机
- 复合式破碎机
- 冲击式破碎机
- 立式复合破碎机
- 重锤式破碎机
- 花岗岩石破碎机
- 高效破碎机
- 双齿破碎机
- 煤矸石破碎机
- 四辊破碎机
- 环锤式破碎机
- 小型破碎机
- 双轴破碎机
- 单辊式破碎机
- 对辊式破碎机
- 圆锥式破碎机
- 振动给料机
- 圆振动筛
- 斗式提升机
- 直线振动筛
- 电磁振动给料机
- 滚筒筛沙机
- 高频筛
- 振动筛
- 滚筒洗石机
- 干式磁选机
- 螺旋溜槽
- 螺旋分级机
客户购机前,金狮贵宾会登录网址免费派工程技术人员到用户现场为用户规划场地、...
- 声明:本文只用于交流探讨,所给案例只是用于演示教学。任航鹗ü蟊龌岬锹纪夫看完本文后而引起的纠纷与本人无关。(大家不要去作恶啊)。这个问题金狮贵宾会登录网址刚好以前做过。其实之前金狮贵宾会登录网址做出一个学生绩点查询器,可以直接查询学生的绩点而不用去网上查。也有人问金狮贵宾会登录网址是不是学校给了金狮贵宾会登录网址API接口,金狮贵宾会登录网址只能笑谈,怎么可能,学校会给金狮贵宾会登录网址这样一个平凡平庸的学生接口?超级课程表是怎么做的?说白了,现在很多高校用的都是正方的那一套教务系统,要想实现这些功能,直接用程序模拟浏览器就可以了。说的比较简单,下次有空的时候补上一个案例哈。题主也可以先去百度搜以下“模拟浏览器登录”之类的关键词。先简单说一下金狮贵宾会登录网址以前的做法,用httpWatcherIE下面使用,百度搜具体使用方法)去采集网页信息,然后再用某种语言去实现(Java,C#,还有Python都可以)。金狮贵宾会登录网址之前用的是Java,用的jar包是HttpClient(3.0版的)。--------------------------分割线----------------------------------下面开始简单讲一下程序模拟登录教务系统的过程吧。1:首先你需要用httpWatcher去抓包,也就是你先要知道在你用浏览器去登录教务系统的时候,浏览器做了哪些事情。1)首先安装HttpWatcherDownload|HttpWatch2)根据向导一步一步的安装就可以了哈,这个金狮贵宾会登录网址就不贴截图了。3)启动IE,在IE-工具-httpWatcherProfessional打开httpWatcher4)打开之后是这个样子的图片有点小,不知道看不看得清楚,看不清楚也没关系,后面会讲的。至此金狮贵宾会登录网址的准备工作做完了。下面金狮贵宾会登录网址要正式开始抓包了。2:抓包搜集浏览器行为数据1)金狮贵宾会登录网址以金狮贵宾会登录网址的学校为例哈,首先登录教务系统的登录地址:重庆理工大学信息门户在打开这个页面之前就应该先开启HttpWatcher,即点击那个Record按钮,程序就会开始记录浏览器行为。2)下面的数据是金狮贵宾会登录网址从打开教务系统登录网址,到输入学号和密码点击登陆后程序所抓取到的所有数据。哈哈,看着有很多是吧?其实里面大部分内容和你半毛钱关系都没有,比如有很多请求图片的一些链接啊什么你都不需要管。3)点击Filter-Filter,打开如下界面:选中Enablefiltering,然后在Condition里面把image/*的选项全部勾上,这样过滤器就会过滤掉所有图片资源请求,这样你的界面看着就非常清爽了。再加一步,把css文件和js文件也过滤掉吧,通常它们也没有什么用。选中text/css,text/javascript4)然后你的界面就变成了下面这个样子:是不是干净了很多?上面的信息就是从打开教务系统网址到输入学号姓名登录后所抓取的信息,金狮贵宾会登录网址接下来要做的其实就是把这些信息记录下来,然后通过某种高级语言(Java,C#)或者脚本语言(php,python)来实现这样的过程就可以了。接下来让金狮贵宾会登录网址来分析一下上面的每一条都做了些什么。3:分析。在分析之前你必须要了解以下http协议的常识,否则在看某些内容的时候你会不知所措。关于http的一些基础内容,你可以看这里:HTML教程其中的html标签内容可以不看,最主要的目的是你要知道一个http文档由head和body组成,http头部的一些字段所代表的含义以及关于url编码和解码的问题。下面金狮贵宾会登录网址先来分析第一个链接:链接地址:http://i.cqut.edu.cn/zfca/login这是金狮贵宾会登录网址登录的第一个网址,从这里可以看到这个链接返回的HTTP状态码为200。I:第一个要打开的的是Headers:分析以下左边的请求方发送的信息:这里是一些http头部字段,每次抓取的字段可能都不一样。这里有一个原则,即日后当你写程序模拟登录的时候,上面的所有http头部并不一定都要发送的,你可以先尝试发送你认为最核心的一些http头部字段(比如cookie肯定更是要发送的)。右边是服务器发送回来的http文档,没什么可说的,金狮贵宾会登录网址就不再讲了。II:Cookie这个才是最重要的。所谓Cookie,其实是服务器放置在客户端上的数据,用来标识客户的身份的。举个简单的例子,百度贴吧,只要你之前有登录过,之后再打开浏览器的时候就不需要再登录了。这个就是百度在你电脑存了一个Cookie(该Cookie名交BDUSS)。只要你有这个Cookie,就可以通过这个Cookie直接登录不用再输入用户名和密码了。接下来让金狮贵宾会登录网址看一下这个Cookie:里面有一个字段JSESSION,然后它的方向是发送到服务器(其实之前在Header里面已经看见过了,就是那个Cookie字段),然后值是DE4F273015AE8467C8A46B5B4BD5CB2A,过期时间是Session,也就是一个会话。好了,到这里金狮贵宾会登录网址就完成对这一个链接的分析,但是现在还有一个问题就是这个JSESSION字段从哪里来呢?它是金狮贵宾会登录网址需要从客户端发送过去的,那金狮贵宾会登录网址从哪里来取这个字段呢?很明显这个字段肯定是服务器发送过来的,而在金狮贵宾会登录网址这里的链接里面却没有看到。所以有两种情况:1)httpWatcher没有记录下来服务器发送过来的JSESSION。2)过滤器过滤掉了这个记录。第二种情况好说,取消过滤器一个一个找,但如果是第一种情况,很明显,就需要重新抓取了。这次金狮贵宾会登录网址抓取的时候要先清理Cookie,原因就很清楚了,金狮贵宾会登录网址之前那个JSESSION已经存到本地了,写的过期时间是会话,所以如果金狮贵宾会登录网址不清理Cookie的话,那金狮贵宾会登录网址可能就抓取不到服务器发送过来的Cookie了。所以答主在这里又重新抓取了一遍程序,结果如下:然后金狮贵宾会登录网址在第一个链接的Cookie栏里面幸运的找到了这个Cookie-Receive注意第一个链接的返回状态码是304,不是200。下面整理一下大概的思路:在链接中方法为Post的时候,在Post栏里有对应需要发送的信息,如下:其中的数据基本上都是死的,但是其中的lt是需要获得的。它从哪里来的?答案是从http页面上来的问金狮贵宾会登录网址怎么找的?勤用Find工具,非常强大所以在分析的过程中如果遇到了自己不知道的一些值,去用Find工具,能够找到它的出处。当然,如果找不到,很大可能就是你抓取的不完整。这个时候重新抓取一遍过程吧。-----------------金狮贵宾会登录网址是分割线2-------------------------关于信息采集的部分就写上面这些哈,下面开始写用Java来模拟浏览器登录。主要模拟的就是以下步骤:到最后一个链接的时候,其实就是点击登录以后,教务系统金狮贵宾会登录网址的页面。1)下载jar包。java里面有原生的关于URL访问的类,叫做URLConnection这个类urlconnection_百度搜索,但是这个类用起来比较麻烦,也不符合金狮贵宾会登录网址模拟浏览器这样的行为,所以金狮贵宾会登录网址用第三方jar包,也就是httpClient(ApacheHttpComponents),话说金狮贵宾会登录网址刚看到最后更新时间是2015-06-05。关于java里jar包的下载和导入金狮贵宾会登录网址就不再赘述。2)实际代码代码是用java写的,然后jar包是用的httpClient3.1(果然还是3.x版本好用,感觉4.x倒把它弄复杂了。不过httpClient4.x的版本已经改名交HttpComponents了)httpClient3.1需要3个jar包commons-httpclient-3.0.1.jarcommons-codec-1.4.jarcommons-logging-1.1.1.jarHttpclient所需jar包下载(本来想贴官网的下载地址的,但是在ApachehttpClient3.x的官网上点击download,直接跳转到httpComponent的下载页面,所以另外找了个下载地址,可用)此外,为了解析HTML文档内容(比如取得里面的某些隐藏字段),金狮贵宾会登录网址还需要Jsoup的jar包,JSoup是java下用来解析HTML文档的jar包,功能非常强大。当然,也有一些其他的jar包可选,比如HtmlParser。Jsoup官网地址:jsoupJavaHTMLParser,withbestofDOM,CSS,andjquery接下来金狮贵宾会登录网址就直接贴金狮贵宾会登录网址写的源码吧。importjava.io.IOException;importjava.util.HashMap;importjava.util.Map;importorg.apache.commons.httpclient.Header;importorg.apache.commons.httpclient.HttpClient;importorg.apache.commons.httpclient.HttpException;importorg.apache.commons.httpclient.NameValuePair;importorg.apache.commons.httpclient.URI;importorg.apache.commons.httpclient.methods.GetMethod;importorg.apache.commons.httpclient.methods.PostMethod;importorg.jsoup.Jsoup;importorg.jsoup.nodes.Document;publicclassTest{privatestaticHttpClientclient=newHttpClient();privatestaticGetMethodgetMethod=newGetMethod("http://i.cqut.edu.cn/");privatestaticPostMethodpostMethod=newPostMethod();privatestaticMap<String,String>map=newHashMap<String,String>();publicstaticvoidlogin()throwsHttpException,IOException{//第一步获取JSESSIONintstatus=client.executeMethod(getMethod);map.put("JSESSION",getMethod.getResponseHeader("Set-Cookie").getValue().trim().split(";")[0].split("=")[1]);//第二步获取第二个JSESSION和ltgetMethod.setURI(newURI("http://i.cqut.edu.cn/zfca/login?service=http%3A%2F%2Fi.cqut.edu.cn%2Fportal.do"));getMethod.addRequestHeader(newHeader("Cookie",map.get("JSESSION").toString()));client.executeMethod(getMethod);map.put("JSESSION2",getMethod.getResponseHeader("Set-Cookie").getValue().trim().split(";")[0].split("=")[1]);Documentdoc=Jsoup.parse(getMethod.getResponseBodyAsStream(),"gbk","http://i.cqut.edu.cn");map.put("lt",doc.select("[name=lt]").attr("value"));System.out.println(map);//第三步发送POST请求postMethod.setURI(newURI("http://i.cqut.edu.cn/zfca/login?service=http%3A%2F%2Fi.cqut.edu.cn%2Fportal.do"));postMethod.addRequestHeader(newHeader("Cookie","JSESSION="+map.get("JSESSION")+";JSESSION="+map.get("JSESSION2")));postMethod.addParameter(newNameValuePair("_eventId","submit"));postMethod.addParameter(newNameValuePair("isremenberme","0"));postMethod.addParameter(newNameValuePair("losetime","30"));postMethod.addParameter(newNameValuePair("password","这里填写密码"));postMethod.addParameter(newNameValuePair("username","这里填写学号"));postMethod.addParameter(newNameValuePair("useValidateCode","0"));postMethod.addParameter(newNameValuePair("lt",map.get("lt")));client.executeMethod(postMethod);//第四步进入个人中心主页getMethod.setURI(newURI(postMethod.getResponseHeader("Location").getValue()));getMethod.setRequestHeader(newHeader("Cookie","JSESSION="+map.get("JSESSION")));for(inti=0;i<getMethod.getRequestHeaders().length;i++){System.out.println(getMethod.getRequestHeaders()[i].getName()+":"+getMethod.getRequestHeaders()[i].getValue());}status=client.executeMethod(getMethod);System.out.println(status);System.out.println(getMethod.getResponseBodyAsString());}publicstaticvoidmain(String[]args)throwsHttpException,IOException{login();}}这是金狮贵宾会登录网址昨天写的代码。关于HttpClient3.x的用法,金狮贵宾会登录网址就不再叙述,百度搜索相关内容,资料一大堆。金狮贵宾会登录网址昨天运行的时候基本上一切顺利,然后到最后一个链接的时候,对照着HttpWatcher上所抓取的内容,然而运行的时候返回的页面却不是最终登录进去后的页面,而是一个出错的页面。返回的错误页面如下:<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"><title>错误提示页面</title><scripttype="text/javascript">varopenState=false;var$=document.getElementById;functionshowErrorDetail(){if(!openState){openState=true;$("errorDetailDiv").style.display="";}else{openState=false;$("errorDetailDiv").style.display="none";}}</script></head><body><divstyle="text-align:center;font-size:14px;"><imgsrc="http://i.cqut.edu.cn:80/zfca/login/images/error_mh.jpg"><br/>可能页面已经被删除,你可以选择<ahref="javascript:history.go(-1)">返回上一页</a><hrwidth=80%></div></body></html>本人还在尽力找原因。不过透过这一点,也体现一点,你在做这个的过程中经常可能会遇到莫名其妙的问题,比如金狮贵宾会登录网址现在这个,完全没有头绪,不知道到底是哪里出的问题。但是金狮贵宾会登录网址之前写过关于登录的代码,是成功了的,而那次成功的登录其实也是遇到了各种问题,最典型的就是在HttpWatcher里面显示的是get方法,然后金狮贵宾会登录网址实际写代码的时候get按照get方法发送始终失败,换成Post方法就好了。-----------------------------金狮贵宾会登录网址的分割线3-------------------------话说第一次长答案,有人点赞心里还真的是很开心啊。-----------------------------分割线4--------------------------------哎呀,现在真的是心力交瘁啊。一直在想为什么为什么。原因金狮贵宾会登录网址查了一下,第四步返回的Location地址是http://i.cqut.edu.cn/zfca/http%3A%2F%2Fi.cqut.edu.cn%2Fportal.do?ticket=ST-22484-KYDSTm1GeYsETxuCUFMT-zfca,但是httpWatcher给出的地址是http%3A%2F%2Fi.cqut.edu.cn%2Fportal.do?ticket=ST-22484-KYDSTm1GeYsETxuCUFMT-zfca,就前面的那一团不对。考虑过用字符串拼接的形式,把那个ticket给取出来然后再访问,但是返回的页面也是不对的,说金狮贵宾会登录网址会话过期了,要重新登录~~~。所以写这个最大的麻烦就是很多时候不知道所以然,还没有一种合适的方法去找到到底哪里出了问题。。。。最近还有课程设计要做,所以此贴就先暂时这样吧。后面有时间再看了。-------------------------------最近更新--------------------------------------话说本来准备不再更的,不过心痒,一直想把做出来。经过金狮贵宾会登录网址的不懈努力,终于成功进入了。。。。再贴一下代码如下,供有需要的人士对比金狮贵宾会登录网址上次所写的代码:publicclassTest{privatestaticHttpClientclient=newHttpClient();privatestaticGetMethodgetMethod=newGetMethod();privatestaticPostMethodpostMethod=newPostMethod();privatestaticMap<String,String>map=newHashMap<String,String>();publicstaticvoidlogin()throwsHttpException,IOException{client.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);//第一步获取JSESSIONgetMethod.setURI(newURI("http://i.cqut.edu.cn/"));intstatus=client.executeMethod(getMethod);map.put("JSESSION",getMethod.getResponseHeader("Set-Cookie").getValue().trim().split(";")[0].split("=")[1]);//第二步getMethod.setURI(newURI("http://i.cqut.edu.cn/portal.do"));getMethod.setRequestHeader("Cookie","JSESSIONID="+map.get("JSESSION"));getMethod.setRequestHeader("Host","i.cqut.edu.cn");getMethod.setRequestHeader("User-Agent","Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.1;Trident/4.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C)");client.executeMethod(getMethod);map.put("JSESSION2",getMethod.getResponseHeader("Set-Cookie").getValue().trim().split(";")[0].split("=")[1]);Documentdoc=Jsoup.parse(getMethod.getResponseBodyAsStream(),"gbk","http://i.cqut.edu.cn");map.put("lt",doc.select("[name=lt]").attr("value"));//第三步发送POST请求postMethod.setURI(newURI("http://i.cqut.edu.cn/zfca/login?service=http%3A%2F%2Fi.cqut.edu.cn%2Fportal.do"));postMethod.setRequestHeader("Host","i.cqut.edu.cn");postMethod.setRequestHeader("Referer","http://i.cqut.edu.cn/zfca/login?service=http%3A%2F%2Fi.cqut.edu.cn%2Fportal.do");postMethod.setRequestHeader("User-Agent","Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.1;Trident/4.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C)");postMethod.setRequestHeader("Cookie","JSESSIONID="+map.get("JSESSION")+";JSESSIONID="+map.get("JSESSION2"));postMethod.addParameter(newNameValuePair("ip",""));postMethod.addParameter(newNameValuePair("submit1",""));postMethod.addParameter(newNameValuePair("_eventId","submit"));postMethod.addParameter(newNameValuePair("isremenberme","0"));postMethod.addParameter(newNameValuePair("losetime","30"));postMethod.addParameter(newNameValuePair("password","密码"));postMethod.addParameter(newNameValuePair("username","学号"));postMethod.addParameter(newNameValuePair("useValidateCode","0"));postMethod.addParameter(newNameValuePair("lt",map.get("lt")));client.executeMethod(postMethod);//第四步进入个人中心主页getMethod.setURI(newURI(postMethod.getResponseHeader("Location").getValue()));getMethod.setRequestHeader("Cookie","JSESSIONID="+map.get("JSESSION"));getMethod.setRequestHeader("Host","i.cqut.edu.cn");getMethod.setRequestHeader("Referer","http://i.cqut.edu.cn/zfca/login?service=http%3A%2F%2Fi.cqut.edu.cn%2Fportal.do");status=client.executeMethod(getMethod);}publicstaticvoidprintReq(HttpMethodmethod){System.out.println("----------RequestHead-------------");for(inti=0;i<method.getRequestHeaders().length;i++){System.out.println(method.getRequestHeaders()[i].getName()+":"+method.getRequestHeaders()[i].getValue());}System.out.println("----------RequestHead-------------");System.out.println();}publicstaticvoidprintRes(HttpMethodmethod){System.out.println("----------ResponseHead-------------");for(inti=0;i<method.getResponseHeaders().length;i++){System.out.println(method.getResponseHeaders()[i].getName()+":"+method.getResponseHeaders()[i].getValue());}System.out.println("----------ResponseHead-------------");System.out.println();}publicstaticvoidmain(String[]args)throwsHttpException,IOException{login();}}主要的变动就是。。。和httpWatcher所抓取的是不一样的。大家有兴趣就可以多研究一下。反正这个模拟登录真的是技术活。。需要耐心。。。
毕业设计想把学校教务系统的功能模块做成手机APP
2019-11-28 14:48:56
- 上一条:上一篇:初代仙剑有哪些让你噗嗤一笑或者感动的小细节_2
- 下一条:下一篇:2017年知乎上有哪些让你受益匪浅的专业回答_2