Html Agility Pack链接和img src提取

3

我有一些页面使用图片作为链接,我想获取href链接以及图片的src。问题是现在只能够正确获取href,但只得到第一个img src并且重复出现。

HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load(url);
HtmlNodeCollection linkNodes = doc.DocumentNode.SelectNodes("//a[@href]");
foreach (HtmlNode linkNode in linkNodes)
{
HtmlAttribute link = linkNode.Attributes["href"];
HtmlNode imageNode = linkNode.SelectSingleNode("//img");
HtmlAttribute src = imageNode.Attributes["src"];

string imageLink = link.Value;
string imageUrl = src.Value;
}

有人能告诉我哪里有问题或者其他解决方法吗?谢谢。


你发布的代码看起来很好... 你把提取出来的图片链接和URL存在哪里?在列表中吗?这部分代码缺失了。在这里,你只是在循环范围内声明了两个字符串,因此之后就将它们丢弃了。我猜这只是为了简化代码,但是你在这里留下的代码缺失可能会导致错误... - Philip Daubmeier
为了让一切正常工作,我现在只是从foreach循环内部将其打印在文本框中:output.Text += imageLink + " - " + imageUrl + "\r\n"; - John
HTML数据是什么样子的?文本框中的内容是什么样子的?代码看起来很好,但在了解你得到的内容之前,我们不可能理解你的情况。 - Jeff Mercado
1个回答

2

尝试更改

HtmlNode imageNode = linkNode.SelectSingleNode("//img");

to

HtmlNode imageNode = linkNode.SelectSingleNode(".//img");

希望这能帮到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接