1

我正在尝试从 WEBPAGE 中获取数据, <DIV>特定的类 <DIV class="personal_info"> 有 10 个类似<DIV>的 S 并且属于相同的类“Personal_info”(如 HTML 代码所示,现在我想提取 10-15 中的类 personal_info 的所有 DIV在每个网页中。

<div class="personal_info"><span class="bold">Rama Anand</span><br><br> Mobile: 9916184586<br>rama_asset@hotmail.com<br> Bangalore</div>

为了做一些必要的事情,我开始使用堆栈溢出中有人建议的 HTML AGILE PACK,我一开始就卡住了,因为在 HtmlAgilePack 中缺乏知识,我的 C# 代码是这样的

HtmlAgilityPack.HtmlDocument docHtml = new HtmlAgilityPack.HtmlDocument();
        HtmlAgilityPack.HtmlWeb docHFile = new HtmlWeb();

        docHtml = docHFile.Load("http://127.0.0.1/2.html");

那么如何进一步编码,以便可以抓取类为“personal_info”的 DIV 中的数据......示例建议将不胜感激

4

3 回答 3

2

我现在无法检查,但不是吗:

var infos = from info in docHtml.DocumentNode.SelectNodes("//div[@class='personal_info']") select info; 
于 2011-07-01T03:46:35.590 回答
2

要加载 url,您可以执行以下操作:

 var document = new HtmlAgilityPack.HtmlDocument(); 
 var url = "http://www.google.com";
 var request = (HttpWebRequest)WebRequest.Create(url);
 using (var responseStream =  request.GetResponse().GetResponseStream())
 {
   document.Load(responseStream, Encoding.UTF8);
 }

另请注意,有一个 fork 可让您在敏捷包中使用 jquery 选择器。

IEnumerable<HtmlNode> myList = document.QuerySelectorAll(".personal_info");

http://yosi-havia.blogspot.com/2010/10/using-jquery-selectors-on-server-sidec.html

于 2011-07-01T03:54:06.903 回答
0

哪里发生了什么?

node.DescendantNodes().Where(node_it => node_it.Name=="div");

如果您想要顶级节点(根),您可以使用 page.DocumentNode 作为“节点”。

于 2011-07-01T05:32:11.183 回答