在解释之前,我使用的是 VB.net 和 HtmlAgilityPack。
我有下面的 html,所有三个部分都有相同的格式。我正在使用 htmlagilitypack 从标题和日期中提取数据。我的代码正确提取了标题,但日期仅从第一个实例中提取并重复 3 次:
HtmlAgilityPack 代码:
For Each h4 As HtmlNode In docnews.DocumentNode.SelectNodes("//h4[(@class='title')]")
Dim date1 As HtmlNode = docnews.DocumentNode.SelectSingleNode("//span[starts-with(@class, 'date ')]")
Dim newsdate As String = date1.InnerText
MessageBox.Show(h4.InnerText)
MessageBox.Show(newsdate)
Next
我以为在每个 h4 中,我都会相应地得到它的相关日期......
HTML 代码:
<div class="article-header" style="" data-itemid="920729" data-source="ABC" data-preview="Text 1">
<h4 class="title"><a href="URL" class="title" title="Text 1">Text for Mr. A</a></h4>
<div class="byline">
<span class="date timestamp"><span title="29 November 2013">29-11-2013</span></span>
<span class="source" title="AGE">18</span>
</div>
<div class="preview">Text 1 Preview</div>
</div>
<div class="article-header" style="" data-itemid="920720" data-source="ABC" data-preview="Text 2">
<h4 class="title"><a href="URL" class="title" title="Text 2">Text for Mr. B</a></h4>
<div class="byline">
<span class="date timestamp"><span title="27 November 2013">27-11-2013</span></span>
<span class="source" title="AGE">25</span>
</div>
<div class="preview">Text 2 Preview</div>
</div>
<div class="article-header" style="" data-itemid="920719" data-source="ABC" data-pre+view="Text 3">
<h4 class="title"><a href="URL" class="title" title="Text 3">Text for Mr. C</a></h4>
<div class="byline">
<span class="date timestamp"><span title="22 October 2013">22-10-2013</span></span>
<span class="source" title="AGE">20</span>
</div>
<div class="preview">Text 3 Preview</div>
</div>
最终输出应该是:
A先生的文字
29-11-2013
B先生的文字
27-11-2013
C先生的文字
22-10-2013
我的代码得到了什么:
A先生的文字
29-11-2013
B先生的文字
29-11-2013
C先生的文字
29-11-2013
任何帮助深表感谢。