Geckofx从页面获取特定链接

时间:2015-11-20 11:13:52

标签: c# winforms geckofx

var links = new List<GeckoElement>();
foreach (var link in geckoWebBrowser1.Document.Links)
{
    if (!String.IsNullOrEmpty(link.GetAttribute("href").ToString()))
        links.Add(link);
    }
}

我有这个代码来收集页面中的所有链接,但是我无法弄清楚如何过滤到以“ow.ly”开头的某些特定链接。应忽略列表中的其余部分。

试过这个,但似乎没有工作

if (links.Count > 0)
{
    if (links.Equals("ow.ly"))
    {

    }
}

当我调试链接等于ow.ly时,它显示0结果。

1 个答案:

答案 0 :(得分:1)

links是一个List<GeckoElement>。因此列表不太可能等于字符串"ow.ly"。相反,您希望过滤项目列表,href属性包含该文本。

你可以这样做,例如:

var owlyLinks = geckoWebBrowser1.Document.Links.Where(link =>
{
    string hrefAttribute = link.GetAttribute("href").ToString();
    return !string.IsNullOrEmpty(hrefAttribute) && hrefAttribute.Contains("ow.ly");
}).ToList();

您可能需要调整检查,以便"ow.ly"需要出现在特殊位置而不是字符串中的某个位置。例如,您可以解析整个Url,然后检查主机名是否等于ow.ly