抓取其他页面的HTML,非源码

2017-01-09 00:00 出处:360java.com 作者:360java 评论(
后台代码如下: string url = quot;http://baoliao.cq.qq.com/pc/detail.html?id=443758squot;; HttpWebReques...

后台代码如下:

  string url = "http://baoliao.cq.qq.com/pc/detail.html?id=443758s";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Accept = "*/*"; //接受任意文件
            request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)"; //
            request.AllowAutoRedirect = true;//是否允许302

            request.Referer = url; //当前页面的引用
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
            html = reader.ReadToEnd();
            stream.Close();
            text.Text = html;

 

如题,asp.net 抓取页面内容,如http://baoliao.cq.qq.com/pc/detail.html?id=443758这个网站的内容,其他页面的抓取都没问题,这个网站好像有点特殊,他只能抓取到页面的源代码,但不能抓取到整个HTML,各位大神也可以打开这网站的源码,也找不到内容主体。但HTML有内容主体,求解,怎么抓取到内容主体。

最佳答案

这是动态加载,通过js去加载的,这种动态内是抓取不了的,取巧的办法是用 webview把页面加载后再取document的值。有好的方法记得分享一下。

额,我这个是pc端的。不是安卓的。。

@谢六狼: 你是winform?winform用webbrowser.

@wangjinming: 是asp.net

@谢六狼: asp.net就不知道了。

同一类型的页面的话可以动态分析一下数据接口,假如你要批量抓取就算了吧。

@谢六狼: http://baoliao.cq.qq.com/api/content/detail?id=443758&_=1483671776305这个是数据接口  443758是你的id 1483671776305单前时间戳,带好秒的,你把要抓取的地址全都换一下就可以了。

http://baoliao.cq.qq.com/pc/detail.html?id=443758 换成

http://baoliao.cq.qq.com/api/content/detail?id=******&_=******* 明白?

明白了。。但是获取到的内容是unicode编码。需要改成什么才能转成中文?

@谢六狼: 大哥基础的东西就不要来问了吧,网上一大堆啊。

@wangjinming: 因为是菜鸟- - ,试了好几种编码转换都不行,网上搜是要自己写转化。然后才问的,还是非常感谢大哥。

@谢六狼: 一看就是unicode,直接显示就好了,string aa = "\u8ba9\u8ff7"; 显示后直接变成中文。

@wangjinming: 谢谢大哥。。我还是不懂怎么解码。。。不过还是不麻烦你了

@谢六狼: 在百度输入 “unicode转中文 c#” 回车,选择第一条。

@wangjinming: 知道为什么前面转不成功了。。。因为流返回带有这些{"code":0,"msg":"success","data":{"main":{"myself":0,字符,不是纯unicode,所以会一直报错。现是通过jquery切割,然后再转。。就成功了。

分享到:
本文标签: asp.net

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

Copyright (C) 360java 360java.com, All Rights Reserved.

苏ICP备16022210号