重开一贴,非常之急.(在线等) 用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 联系我们: