HtmlAgilityPack - 如何在<DIV>大型网页中抓取数据



我正试图从网页中获取数据,<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,正如Stack溢出中的某个人所建议的那样我一开始就坚持了下来,因为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中的数据。。。

p>我现在无法检查,但不是吗:
var infos = from info in docHtml.DocumentNode.SelectNodes("//div[@class='personal_info']") select info; 

要加载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

Where发生了什么?

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

如果您想要顶部节点(根),您可以使用page。DocumentNode作为"节点"。

最新更新