之前用xpath来解析html,之前没有用过对这种选择元素的方式不熟悉,用着很别扭,后面看到AngleSharp这个尝试了一下发现可以像Jq一样选择元素,很是方便
static async Task Main(string[] args) { var client = new HttpClient(); HttpResponseMessage response = await client.GetAsync("https://www.sciencedirect.com/browse/journals-and-books/g?contentType=JL"); response.EnsureSuccessStatusCode(); var responseBody = await response.Content.ReadAsStringAsync(); await ReadWithAngleSharpAsync(responseBody); Console.ReadLine(); }
public static async Task ReadWithAngleSharpAsync(string html) { var parser = new HtmlParser(); var document = await parser.ParseDocumentAsync(html); var hmlt_a = document.QuerySelectorAll("#publication-list li a"); foreach (var item in hmlt_a) { Console.WriteLine($"标题:{item.TextContent},链接:{item.Attributes["href"].Value}"); } }