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

本文关键字:链接 HTML 文档 | 更新日期: 2023-09-27 18:12:30

我有一个带有WebBrowser对象的c#表单。这个对象包含HTML文档。文档中有一个链接没有标记(没有id和名称)我如何访问这个元素??

我试着用这个:

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

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

我也不能通过文档做循环,或者得到document . tostring()的子字符串,因为那样我就不能点击链接。

如果你能给我一些建议就太好了。

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

在这种情况下,最好的办法总是找到一个"锚",意思是——在文档中一个永远不会改变的地方。

假设

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

没有ID或Name,所以你能做的就是检查你正在寻找的元素的父元素是否有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页面的问题之一)

Shai .

你可以使用Html敏捷包。并通过xpath

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

您应该有一些关于如何识别链接的信息。它可以是id,名称或文本。如果文本总是相同的,则检查该链接的内部文本