【发布时间】:2021-03-24 23:01:45
【问题描述】:
我从 URL 中获取 html,然后选择元素 table 并选择 table 内的所有 tr 元素,这些元素在其 id 属性值中包含 tr。现在我有大约 20 个这样的元素:
<th class="nw">1 Jan</th><td class="nw">Friday</td><td><a href="/holidays/andorra/new-year-day">New Year&#39;s Day</a></td><td>National holiday</td>
如何从上面的元素中分别获取每个文本?
示例输出:1 Jan/Friday/New Year's Day/National holiday
var url = "https://www.timeanddate.com/holidays/andorra/";
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Accept-Language", "en-US,en;q=0.5");
var html = await client.GetStringAsync(url);
var document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(html);
var a1 = document.DocumentNode.Descendants("table")
.Where(node => node.GetAttributeValue("id","").Equals("holidays-table"))
.ToList();
var a2 = a1[0].Descendants("tr")
.Where(node => node.GetAttributeValue("id","").Contains("tr"))
.ToList();
【问题讨论】:
标签: c# web-scraping html-agility-pack