【问题标题】:pull data with HtmlAgilityPack Web Scraping c#使用 HtmlAgilityPack Web Scraping c# 提取数据
【发布时间】:2020-10-20 11:30:38
【问题描述】:

它在 selectnodes 中返回 null 的原因可能是什么?

HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("https://www.wired.com/most-popular/");
var headerNames = doc.DocumentNode.SelectNodes("//a[@class='archive-item-component__title']").ToList();
string listData = "";
foreach(var item in headerNames)
{
   listData += Environment.NewLine + item.InnerText;   
}
Console.WriteLine(listData);

【问题讨论】:

  • 1.不要使用 HtmlAgilityPack,使用 AngleSharp。 2 页面很可能是使用 React 之类的客户端渲染构建的,因此您无法抓取它。

标签: asp.net .net web-scraping html-agility-pack


【解决方案1】:

原因是网站中的'archive-item-component__title'类是为h2标签指定的,而不是为a标签指定的。

像这样选择你的 headerNames:

doc.DocumentNode.SelectNodes("//h2[@class='archive-item-component__title']");

PS:您不需要在 SelectNodes 结果上调用 .ToList(),您可以按原样循环 HtmlNodeCollection。

【讨论】:

    猜你喜欢
    • 2014-03-21
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多