日期:2014-05-18  浏览次数:21721 次

如何将string转成HtmlDocument?
用WebRequest获得了一个网页html的string,(代码如下:)现在想将它转成HtmlDocument,不想用到webBrowser,因为webBrowser实在太慢,太多问题要处理; 然而HtmlDocument却无法通过简单的new关键字来创建,该怎么办?

或者,有什么类似HtmlDocument的东东可以方便地处理用WebRequest获得的html的string?也不想用正则表达式来处理,因为感觉太难写了,没有HtmlDocument里面的GetElementById之类的方法那么简单好用啊。

C# code


string url = "http://stock.finance.sina.com.cn/hkstock/finance/01398.html";

            WebRequest request = WebRequest.Create(url); //请求url
            WebResponse response = request.GetResponse(); //获取url数据

            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));
            string tempStr = reader.ReadToEnd();




------解决方案--------------------
你用HtmlAgilityPack试试,下载地址http://htmlagilitypack.codeplex.com/

使用如下
C# code
 HtmlDocument htmlDoc = new HtmlDocument(); htmlDoc.Load(Server.MapPath("~/test.txt")); HtmlNodeCollection nodes = htmlDoc.DocumentNode.SelectNodes(@"//tbody//tr"); foreach (HtmlNode node in nodes) { Response.Write(node.SelectSingleNode(@"td[1]/a").Attributes["href"].Value + "<br/>"); Response.Write(node.SelectSingleNode(@"td[1]/a").InnerText + "<br/>"); Response.Write(node.SelectSingleNode(@"td[2]/span").InnerText + "<br/>"); Response.Write(node.SelectSingleNode(@"td[3]").InnerText + "<br/>"); Response.Write(node.SelectSingleNode(@"td[4]/span").InnerText + "<br/>"); }