重開一貼,非常之急.(在線等) 用C#.net寫爬蟲抓取網頁時為什么出現這種問題?


Uri   url   =   new   Uri( "http://www.baidu.com "); 
                            WebRequest   requestPage   =   WebRequest.Create(url);//發送absoluteUri創建請求對象 
                            //requestPage.Timeout   =   1000; 
                            WebResponse   reponsePage   =   requestPage.GetResponse(); 
                            Stream   newsStream   =   reponsePage.GetResponseStream();//讀取頁面流 
                                    Encoding   encode   =   System.Text.Encoding.GetEncoding( "gb2312 "); 
                                    StreamReader   reader   =   new   StreamReader(newsStream,   encode);//讀取獲得內容流 
                                    string   boardStream   =   reader.ReadToEnd();//將內容流轉換為文本並存入變量BoardStream,即為所需要的數據流 
為什么經常讀取到的是下面的頁面?這好像是電信的一個頁面.其中zhsbwensen是我上網的賬號,為什么會這樣呢?我該怎么做? 
<html> 
<head> 
<meta   http-equiv= "pragma "   content= "no-cache "/> 
<meta   http-equiv= "Cache-Control "   content= "no-store,no-cache,must-revalidate,post-check=0,pre-check=0,max-age=0 "/> 
<meta   http-equiv= "expires "   content= "-1 "/> 
<meta   http-equiv= "refresh "   content= "2 "/> 
</head> 
<body> 
<iframe   src= "about:blank "   width= "0 "   height= "0 "   frameborder= "0 "   style= "display:none "> </iframe> 
<script   language= "javascript "> 
window.frames[0].location   =   "http://219.131.193.229/update/step1.aspx?p= "   + 
"zhsbwensen ¦ "   + 
Math.floor((new   Date()).getTime()/1000)   +   " ¦ "   +   
navigator.appMinorVersion   +   " ¦ "   + 
screen.availHeight   +   " ¦ "   + 
screen.availWidth   +   " ¦ "   + 
screen.colorDepth   +   " ¦ "   + 
screen.height   +   " ¦ "   + 
screen.width; 
</script> 
</body> 
</html>

6 个解决方案

#1


沒人回啊.

#2


你用個timer 2秒一次2秒一次的刷,看看會不會,應該是電信的問題

#3


樓主用的是adsl?樓主的問題我也遇到過,我在家用的是電信的adsl,獲取網頁源代碼時不時就出現一個討厭的框架,害得我還得自己寫代碼轉向。原因是電信在監視你訪問哪些網站,這太侵犯隱私了!

#4


3樓的,你說對了,我的就是電信的adsl,怎么轉向取得正確地址的內容啊

#5


再頂上

#6


從樓主發的代碼來看,你訪問的是www.baidu.com,但是返回的並不是百度首頁的源代碼,而是一個包含了Iframe的頁面。分析此html代碼發現,它每隔2秒把你的瀏覽器信息及顯示器信息發送到219.131.193.229,這個ip收集你的信息到底是干什么的呢?如果它是搞統計,那也應該再加個Iframe把百度的主頁顯示出來啊?不然瀏覽器顯示此html將是一片空白,且不說這個。我更關注它是怎么替換成這個html的,訪問網站一般都要先把域名解析成IP,然后再通過三次握手建立tcp連接,這個連接一旦建立就可以互相通信了。看看樓主的情況,你訪問www.baidu.com其實並沒有和百度建立tcp連接,而是和另外一個主機,那可以推測是在域名解析的時候有問題。樓主可以用ipconfig/all命令看看自己的DNS服務器是多少?再多ping www.baidu.com幾次看看是不是每次返回的ip相同?是不是你的DNS不穩定,你換個DNS試試?

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: