使用 LINQ 从 HTML 文档中提取一组字符串
Extract a set of strings from a HTML document using LINQ
我正在尝试使用 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);
}
}
是否有更好的方法(更容易编写或更快 运行)将 URLS 放入 IEnumerable 或列表中?
AngleSharp 文档可能值得一读:)
var links = document
.Links
.Cast<IHtmlAnchorElement>()
.Select(e => e.Href)
.Where(h => h.Contains(keyword));
我正在尝试使用 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);
}
}
是否有更好的方法(更容易编写或更快 运行)将 URLS 放入 IEnumerable 或列表中?
AngleSharp 文档可能值得一读:)
var links = document
.Links
.Cast<IHtmlAnchorElement>()
.Select(e => e.Href)
.Where(h => h.Contains(keyword));