我正试图从网页中获取数据,<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中的数据。。。
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作为"节点"。