C# 使用HTMLAgilityPack C检索在HTML页面中循环的深层嵌套值#
我试图使用HTMLAgilityPack从网页中检索各种特定值。网页总是相同的,我想从中获取的数据总是在相同的位置(相同的div/类/属性等) 我试着循环并获取值,但我总是在某个地方搞砸。我会提供一些代码来提供帮助,但老实说,我已经尝试了5次,每次都没有得到接近我想要的结果——我真的陷入了困境 我已经编写了HTML的主要部分:C# 使用HTMLAgilityPack C检索在HTML页面中循环的深层嵌套值#,c#,html,html-agility-pack,C#,Html,Html Agility Pack,我试图使用HTMLAgilityPack从网页中检索各种特定值。网页总是相同的,我想从中获取的数据总是在相同的位置(相同的div/类/属性等) 我试着循环并获取值,但我总是在某个地方搞砸。我会提供一些代码来提供帮助,但老实说,我已经尝试了5次,每次都没有得到接近我想要的结果——我真的陷入了困境 我已经编写了HTML的主要部分: <div id ="markers"> <div class="row"> <div class="span2 filte
<div id ="markers">
<div class="row">
<div class="span2 filter-pane ">
<div class="teaser teaser-small">
<h1 class="teaser-title">
<a href="#map" data-lat="Value1" data-lng="Value2" data-name="Value3">...</a>
</div>
<p> Value4 </p>
</div>
</div>
<div class="span2 filter-pane ">
</div>
<div class="span2 filter-pane ">
</div>
</div>
<div class="row"></div>
<div class="row"></div>
</div>
价值4
基本上,值(1-4)是我想要从数据中提取的值
是页面上的一个div,我需要的所有信息都在这个div中
有多个
div,我需要遍历所有这些
在每个div中,有三个或更少的
div。我还需要循环浏览这3个div
我的数据在这里-值3在..中。其他值可以在
节点中找到,它们是
元素中的属性
我希望有人能为我提供一个解决方案,或者至少是一些很好的指导来访问我想要的所有数据。我尝试过各种方法,但都没有得到我想要的结果
谢谢。这里给你一些提示。因此,首先您需要获取div#markers
,因为您提到它包含您需要的所有信息
string mainURL = your url;
HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load(mainURL);
var markerDiv = doc.DocumentNode.Descendants("div").FirstOrDefault(n => n.Id.Equal("markers');
//Check if marketDiv is null or not
//Same idea, get list of row divs
var rows = marketDiv.Descendants("div").HasClass("row") //I will provide .HasClass function or you can write your own, it's simple;
//Iterate throw your rows object
//for each row object
var aElement = row.Descendants("a").FirstOrDefault()//you can have more criteria here if it has more than 1 a element
aElement.GetAttributeValue("data-lat", "") //will return Value1 here, do the same thing for other attributes and p.
希望它有帮助您应该提供您尝试的代码,并解释它是如何不起作用的。否则,看起来(即使这不是您的意图)您希望我们为您编写代码。这不是我们来这里的目的。请记住,至少根据您的说明,这段HTML的格式不正确。非常感谢您,我自己所知真正缺少的是.subjects方法-如果我将其应用到我的案例中,您的代码将帮助我实现我想要的,谢谢:)