如何在HTML文档中找到链接? (C#)

时间:2011-10-26 04:53:26

标签: c# html xml browser

我有一个带有WebBrowser对象的C#表单。 该对象包含HTML文档。 并且该文档中有一个没有标记的链接(没有ID和没有名称) 我怎样才能访问这个元素?

我试着用这个:

webBrowser1.Document.GetElementsByTagName("a")[n] 

但它不是很有用,因为如果页面上会有一些新链接,我需要重建所有程序。

我也不能通过文档循环,或者获取Document.ToString()的子字符串,因为那时我无法点击链接。

如果你能给我一些建议会很棒。

3 个答案:

答案 0 :(得分:2)

在这种情况下,最好的想法总是找到一个“锚点”,意思是 - 文档中一个永不改变的地方。

让我们说

<a href="http://site.com">dada</a>

没有ID或名称,因此您最接近的是检查您要查找的元素的父元素是否具有ID。

<div id="parentDiv">
      Some text
      Some other stuff
      <a href="http://site.com">The link you're looking for</a>
</div>

这样你就可以得到你知道不会改变的parentDiv,然后是那个父级内的A标签(除非该网站完全改变了结构,否则它应该是永久性的,这是解析外部HTML页面的问题之一) )

晒。

答案 1 :(得分:1)

您可以使用Html Agility Pack。并按xpath选择链接

 HtmlWeb htmlWeb  = new HtmlWeb();
 HtmlDocument doc = htmlWeb.Load(/* url */);
 foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
 {
   // do stuff
 }

答案 2 :(得分:0)

您应该了解如何识别链接的一些信息。它可能是id或名称或文本。如果文本始终相同,请检查该链接的内部文本。