使用LINQ从HTML文档中提取一组字符串

时间:2018-06-19 14:19:45

标签: c# linq anglesharp

我试图使用AngleSharp解析器从LINQ的HTML文档中提取包含特定关键字的URL。

我想到了:

    static void Test(string htmlDocument)
    {
        var parser = new HtmlParser();
        var document = parser.Parse(htmlDocument);

        var links = document.All.Where(m => m.LocalName == "a" && !string.IsNullOrEmpty(m.GetAttribute("href")) 
                                       && m.GetAttribute("href").Contains("keyword"))
                                       .Select(m => m.GetAttribute("href"));

        foreach (var link in links)
        {
            Console.WriteLine(link);

        }
    }

是否有更好的方法(更容易编写或运行起来更快)将URL放入IEnumerable或List中?

1 个答案:

答案 0 :(得分:0)

AngleSharp文档可能值得一读:)

var links = document
    .Links
    .Cast<IHtmlAnchorElement>()
    .Select(e => e.Href)
    .Where(h => h.Contains(keyword));