C# 如何获取href内容

C# 如何获取href内容,c#,c#-4.0,html-parsing,web-scraping,C#,C# 4.0,Html Parsing,Web Scraping,我正在尝试从href提取链接。 这是页面视图源代码中可见的内容,但当我使用firebug检查时,href将包含http://home.website.com/preview/preview?uname=3eadsf132sdas。我尝试使用htmlagilitypack,但href返回null。如何提取href中的链接。如果您没有尝试过这种方法,请尝试这种方法 HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlD

我正在尝试从href提取链接。

这是页面视图源代码中可见的内容,但当我使用firebug检查时,href将包含
http://home.website.com/preview/preview?uname=3eadsf132sdas
。我尝试使用htmlagilitypack,但href返回null。如何提取href中的链接。

如果您没有尝试过这种方法,请尝试这种方法

    HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();

        htmlDoc.OptionFixNestedTags=true;

        htmlDoc.Load(filePath);

 foreach(HtmlNode link in htmlDoc.DocumentElement.SelectNodes("//a[@href"])
 {
    if(link != null)
    {
      if(link["href"] != null)
      {
       HtmlAttribute att = link["href"];
       var url = att.Value;
      }
    }

您可以尝试一些不同的方法,比如使用WebRequest类获取html内容(请参见如何)


如果href不包含任何链接,则可能意味着正在使用Javascript或其他编程语言填充该链接以添加动态内容。如果您可以访问脚本,那么您可能有一个很小的机会获得链接,但不要这样认为。

这是因为空的
href
表示“无论当前URL是什么”。Agility pack无法知道您的HTML来自何处。是否可以提取链接。如何获取href中的链接。@Maddy要重申第一位评论者所说的,没有什么可提取的。Firebug正在向您展示web浏览器所知道的内容。HTML Agility Pack只知道HTML源代码知道的内容。浏览器知道从何处加载HTML,而HTML Agility Pack不知道。不要看firebug,而是看“查看源代码”。这就是HAP实际看到的。谢谢你@jamietre。我得到了它。我的问题是,当用户单击该
href
标记时,它将被重定向到另一个页面。我想提取这个链接。当查看源代码只是不显示链接时,那么如何提取它。Maddy,你不能。该信息在源中不可用。浏览器向用户显示的内容并非来自HTML源代码。它可能是用javascript填充的,或者正如第一位评论员所说的那样(并表示基本页面url)。谢谢HatSoft,但是DocumentElement给出了错误,如果我使用DocumentNode,那么它给出的错误是我们不能将node用作数组。@Maddy DocumentElement抛出了什么错误,我一直用这个