Topic: 一个读取网页源文件的奇怪问题 |
Print this page |
1.一个读取网页源文件的奇怪问题 | Copy to clipboard |
Posted by: elminsterjimmy Posted on: 2006-06-16 16:16 我以前写的一个下载程序,原来是可以用的,前几天再用抛出了异常,看了他的输出确定了是获取源文件的问题。原来用java获取的源文件和察看源文件相同,现在就不同了 附上测试程序,运行输出和此网页的源文件 测试程序:
程序输出: <div align="center"><a href="http://www.xfdm.com">进入幸福动漫,或3秒后自动进入</ a> <script language="JavaScript"> var UrlTable = new Array(); UrlTable[0] = "http://www.xfdm.com/"; location.href=UrlTable[Math.round(Math.random()*(UrlTable.length-1))]; </script> </div> Press any key to continue... 用ie察看源文件所得到的html: <HTML> <HEAD> <TITLE>幸运四叶草 第45话 第1画</TITLE> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <META content="幸运四叶草漫画,幸运四叶草在线漫画,幸运四叶草漫画最新连载,幸运四叶草漫画下载" name=keywords> <META content="幸福动漫,幸运四叶草漫画,幸运四叶草在线漫画,幸运四叶草漫画最新连载,幸运四叶草漫画下载" name=description> <LINK href="/images/index.css" type=text/css rel=stylesheet> <BODY leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <script language=javascript src="/js/load.js"></script> <table width="760" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td><script language=javascript src="/js/head.js"></script></td> </tr> </table> <TABLE width=760 border=0 align="center" cellPadding=0 cellSpacing=0> <TBODY> <TR> <TD bgColor=#E4FCFB height=25> 您当前的位置:<a href='/default.html'>幸福动漫</a> - <a href="../../../index.html">在线漫画</a> - <a href="../../../class/list_p_1.html">漫画列表</a> - <a href='../../../class/list_p_X_1.html'>X</a> - <a href="../index.html"></a><a href='../index.html'>幸运四叶草</a></TD> </TR> <TR> <TD bgColor=#013bc1 height=3></TD> </TR> </TBODY> </TABLE> <TABLE width="103%" border=0 cellPadding=0 cellSpacing=0> <form> <TR> <TD height="26" align="center"><script language=javascript src="/js/ads1.js"></script> 上一页 <SELECT onchange=window.location=form.select2.options[form.select2.selectedIndex].value size=1 name=select2><OPTION value=1.html selected>第1页</OPTION> <OPTION value=2.html >第2页</OPTION> <OPTION value=3.html >第3页</OPTION> <OPTION value=4.html >第4页</OPTION> <OPTION value=5.html >第5页</OPTION> <OPTION value=6.html >第6页</OPTION> <OPTION value=7.html >第7页</OPTION> <OPTION value=8.html >第8页</OPTION> <OPTION value=9.html >第9页</OPTION> <OPTION value=10.html >第10页</OPTION> <OPTION value=11.html >第11页</OPTION> <OPTION value=12.html >第12页</OPTION> <OPTION value=13.html >第13页</OPTION> <OPTION value=14.html >第14页</OPTION> <OPTION value=15.html >第15页</OPTION> <OPTION value=16.html >第16页</OPTION> <OPTION value=17.html >第17页</OPTION> <OPTION value=18.html >第18页</OPTION> <OPTION value=19.html >第19页</OPTION> <OPTION value=20.html >第20页</OPTION> </SELECT> <a href='2.html'>下一页</a> <script language=javascript src="/js/ads2.js"></script></TD> </TR> </form> <TR> <TD align="center" vAlign=top> <IMG id=iphoto src="/js/loading.jpg" onload=foo(this) border="1"> </TD> </TR> <form> <TR> <TD height="25" align="center"><script language=javascript src="/js/ads3.js"></script> 上一页 <SELECT onchange=window.location=form.select2.options[form.select2.selectedIndex].value size=1 name=select2><OPTION value=1.html selected>第1页</OPTION> <OPTION value=2.html >第2页</OPTION> <OPTION value=3.html >第3页</OPTION> <OPTION value=4.html >第4页</OPTION> <OPTION value=5.html >第5页</OPTION> <OPTION value=6.html >第6页</OPTION> <OPTION value=7.html >第7页</OPTION> <OPTION value=8.html >第8页</OPTION> <OPTION value=9.html >第9页</OPTION> <OPTION value=10.html >第10页</OPTION> <OPTION value=11.html >第11页</OPTION> <OPTION value=12.html >第12页</OPTION> <OPTION value=13.html >第13页</OPTION> <OPTION value=14.html >第14页</OPTION> <OPTION value=15.html >第15页</OPTION> <OPTION value=16.html >第16页</OPTION> <OPTION value=17.html >第17页</OPTION> <OPTION value=18.html >第18页</OPTION> <OPTION value=19.html >第19页</OPTION> <OPTION value=20.html >第20页</OPTION> </SELECT> <a href='2.html'>下一页</a> <script language=javascript src="/js/ads4.js"></script></TD> </TR> </form> </TABLE> <table width="760" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td><script language=javascript src="/js/bottom.js"></script></td> </tr> </table> </BODY></HTML> <SCRIPT language=javascript> document.all.iphoto.src = "/js/loading.jpg"; MM_showHideLayers('Layer2','','show'); document.all.iphoto.src ='http://comic.narutos.net/mh1/xiyuncao/45/JOJO_001.jpg'; </SCRIPT> |
2.Re:一个读取网页源文件的奇怪问题 [Re: elminsterjimmy] | Copy to clipboard |
Posted by: javadd Posted on: 2006-06-16 16:51 必须判断连接状态 200才算连接成功! 这是对你这段程序不足之处的一个观点。 具体你必须把异常信息发出来看看。 |
3.Re:一个读取网页源文件的奇怪问题 [Re: elminsterjimmy] | Copy to clipboard |
Posted by: elminsterjimmy Posted on: 2006-06-16 16:57 我主要是截取了该html中一些链接,抛出的异常是截取链接中的数组越界,后来试了下读他的html才发现我读出来的源文件和ie察看的源文件是不同的 还有如何判断连接状态请大虾指点以下,谢谢 |
4.Re:一个读取网页源文件的奇怪问题 [Re: elminsterjimmy] | Copy to clipboard |
Posted by: javadd Posted on: 2006-06-16 17:01 HttpURLConnection conn = (HttpURLConnection) new URL(url) |
5.Re:一个读取网页源文件的奇怪问题 [Re: elminsterjimmy] | Copy to clipboard |
Posted by: elminsterjimmy Posted on: 2006-06-16 17:02 附上异常: |
6.Re:一个读取网页源文件的奇怪问题 [Re: elminsterjimmy] | Copy to clipboard |
Posted by: javadd Posted on: 2006-06-16 17:10 这是你在做subString的时候指针越界. |
7.Re:一个读取网页源文件的奇怪问题 [Re: elminsterjimmy] | Copy to clipboard |
Posted by: elminsterjimmy Posted on: 2006-06-16 17:13 谢谢大虾。不过没有连接是成功的
输出: no error! <div align="center"><a href="http://www.xfdm.com">进入幸福动漫,或3秒后自动进入</ a> <script language="JavaScript"> var UrlTable = new Array(); UrlTable[0] = "http://www.xfdm.com/"; location.href=UrlTable[Math.round(Math.random()*(UrlTable.length-1))]; </script> </div> Press any key to continue... |
8.Re:一个读取网页源文件的奇怪问题 [Re: elminsterjimmy] | Copy to clipboard |
Posted by: elminsterjimmy Posted on: 2006-06-16 17:15 恩,因为我是在截取源文件里的一些链接 因为他给出的源文件和ie的察看源文件不同所以出现了越界 |
9.Re:一个读取网页源文件的奇怪问题 [Re: elminsterjimmy] | Copy to clipboard |
Posted by: javadd Posted on: 2006-06-16 17:15 用conn.getInputStream(),不需要建立两次连接, 连接太快,网站的过滤器会阻止你的连接. 所以获取的http状态不是200. 你可以将你的线程调小点. |
10.Re:一个读取网页源文件的奇怪问题 [Re: elminsterjimmy] | Copy to clipboard |
Posted by: elminsterjimmy Posted on: 2006-06-16 17:19 现在我注释掉了前面3句 // URL url=new URL("http://manhua.xfdm.com/9/1507/1.html"); // URLConnection con=url.openConnection(); // con.setDoInput(true); 输出还是一样 现在我没有用原来那个程序,而是重新写了个测试程序,就是我一开始的给出那段程序。应该不存在有太频繁的连接吧 再次谢谢大虾 |
11.Re:一个读取网页源文件的奇怪问题 [Re: elminsterjimmy] | Copy to clipboard |
Posted by: elminsterjimmy Posted on: 2006-06-16 20:36 现在发现程序的输出是http://manhua.xfdm.com的源文件。为什么得到的是host的源文件?不解吖 |
12.Re:一个读取网页源文件的奇怪问题 [Re: elminsterjimmy] | Copy to clipboard |
Posted by: cxp108 Posted on: 2006-06-19 10:45 elminsterjimmy wrote: LZ没有注意到Request被重定向了么? |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |