问题描述
这个网页,http://www.qidian.com/Book/BookStore.aspx用一般的方法是读不出它的内容的,所有的采集工具,如火车头,ASP,flash工具等都是读不出来的,但有一个网页可能读不出,就是http://tool.chinaz.com/Tools/Robot.aspx可以把它的内容读出来,在这里向大家求助,希望大家能帮帮我,谢谢大家了!这样网页,http://www.qidian.com/Book/BookStore.aspx用一般的方法是读不出它的内容的,所有的采集工具,如火车头,ASP,flash工具等都是读不出来的,但有一个网页可能读不出,就是http://tool.chinaz.com/Tools/Robot.aspx可以把它的内容读出来,在这里向大家求助,希望大家能帮帮我,谢谢大家了!
解决方案
解决方案二:
privatestringgetWebresourceFile1(stringurl){WebClientmyWebClient=newWebClient();byte[]myDataBuffer=myWebClient.DownloadData(url);stringSourceCode=Encoding.UTF8.GetString(myDataBuffer);returnSourceCode;}我不知道你要读什么,这代码是读取该网页的源代码
解决方案三:
引用1楼luntanyonghu的回复:
privatestringgetWebresourceFile1(stringurl){WebClientmyWebClient=newWebClient();byte[]myDataBuffer=myWebClient.DownloadData(url);stringSourceCode=Encoding.UTF8.GetString(myDataBuffer);returnSourceCode;}我不知道你要读什么,这代码是读取该网页的源代码
怎么可能读不出来。我看了一下,能读出来,而且超简单。并没有防采集。我这里有一段自己写的采集程序:///<summary>///请求失败的时候,反复操作///</summary>///<paramname="PageUrl"></param>///<returns></returns>publicstringToServer(stringPageUrl){stringresponseFromServer="";try{while(1==1){WebRequestrequest=WebRequest.Create(PageUrl);WebProxywp=newWebProxy(al[proxy].ToString(),true);request.Proxy=wp;request.Timeout=1000*45;HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();StreamdataStream=response.GetResponseStream();StreamReaderreader=null;reader=newStreamReader(dataStream,System.Text.Encoding.Default);responseFromServer=reader.ReadToEnd();reader.Close();dataStream.Close();response.Close();if(responseFromServer.Contains("refresh")||responseFromServer==""){proxy++;if(proxy>=al.Count){al=ReadIPproxy("e:\test.txt");//初始化代理IP}//ToServer(PageUrl);}else{break;}}}catch(WebExceptionex){if(ex.Status==WebExceptionStatus.ProtocolError){responseFromServer="";}else{proxy++;if(proxy>=al.Count){al=ReadIPproxy("e:\test.txt");//初始化代理IP}ToServer(PageUrl);}}returnresponseFromServer;}
解决方案四:
至于火车头,ASP,flash工具等都是读不出来的那些工具,我从来没有用过。不知道是什么原理但是手写的采集程序一定能读出来。
解决方案五:
楼上大哥,我是新手,能不能把整个代码发给我调试一下;
解决方案六:
代码如下:usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.IO;usingSystem.Net;usingSystem.Text;usingSystem.Text.RegularExpressions;publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){Response.Write("whatisthis?");Response.Write(ToServer("http://www.qidian.com/Book/BookStore.aspx"));}publicstringToServer(stringPageUrl){stringresponseFromServer="";try{WebRequestrequest=WebRequest.Create(PageUrl);HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();StreamdataStream=response.GetResponseStream();StreamReaderreader=null;reader=newStreamReader(dataStream,System.Text.Encoding.Default);responseFromServer=reader.ReadToEnd();reader.Close();dataStream.Close();response.Close();}catch(WebExceptionex){}returnresponseFromServer;}}经过测试,http://www.qidian.com/Book/BookStore.aspx网页的内容还是保存不回来,其它的网站都可以;
解决方案七:
还请大家继续帮忙看看问题出在哪里啊!