我可以获得公司 - 员工 - 见解 - 项目部分;但是,当我尝试在graph-stats中提取特定范围的类名时,它总是返回employee-decrease。页面上有多个部分具有相同的部分名称(以自上而下的列表格式),如下例所示。
我需要从graph-stats中的span中提取类名。在某些情况下,员工减少或员工增加。
我还需要Car Center文本,这就是我开始使用company-employee-insights-item的原因。
无法确定我们在“For Each”项目中隔离当前范围的最佳方法。这就是我到目前为止所拥有的;但每次它都会让员工减少。
Dim ndes As Array = html.DocumentNode.SelectNodes("//*[contains(@class,'company-employee-insights-item')]").ToArray
Dim result As String = String.Empty
For Each item As HtmlNode In ndes
Dim nde As HtmlNode = item.SelectSingleNode("//*[contains(@class,'graph-stats')]/span")
Dim s As String = HttpUtility.HtmlDecode(item.OuterHtml.Trim)
result = result & s & " " & nde.Attributes(0).Value & "<br/>"
Next
以下是html的示例,其中有两个部分,页面上可能有X个部分。
<section class="company-employee-insights-item">
<dl>
<dt>
Car Center
<span class="employee-counter">
(203)
</span>
</dt>
<dd class="graph-stats">
<span class="employee-decrease">
<li-icon aria-hidden="true" type="caret-filled-down-icon"><svg></path></svg></li-icon>
3%
</span>
</dd>
</dl>
</section>
<section class="company-employee-insights-item">
<dl>
<dt>
Truck Center
<span class="employee-counter">
(203)
</span>
</dt>
<dd class="graph-stats">
<span class="employee-increase">
<li-icon aria-hidden="true" type="caret-filled-down-icon"><svg></path></svg></li-icon>
3%
</span>
</dd>
</dl>
</section>
答案 0 :(得分:0)
通过始终拥有[base_url][text1][1]
[base_url][text1][2]
.
.
.
[base_url][text1][16]
[base_url][text2][1]
[base_url][text2][2]
.
.
.
[base_url][text2][154]
.
.
.
.
[base_url][text100][19]
<dd>
值class
的{{1}}和graph-stats
值为<span>
的子class
,可以描述所需节点 从 employee-
开始,因此可行:
Dim document = New HtmlDocument
Dim xpath = "//dd[@class='graph-stats']/span[starts-with(@class, 'employee-')]"
document.LoadHtml(html)
For Each dd In document.DocumentNode.SelectNodes(xpath)
Console.WriteLine(dd.Attributes("class").Value)
Next