c# - HTMLAgilityPack SelectSingleNode 在网页抓取天才时返回 null
问题描述
我正在尝试使用 HTMLAgilityPack 从天才那里抓取一些简单的歌词,有时一切都很好,但其他节点只是空的,我通过分析 Genius.com 的 html 知道每个歌词页面都有一个带有“歌词”类的 div " 但有时当我尝试使用 HTMLAgilityPack 选择该节点时,即使使用相同的歌曲,它也会返回 null:我尝试使用相同的 html 执行程序 10 次,实际加载它 2 次,而其他 8 次它没有。我知道我可以添加一个while循环来检查节点是否为空,但没有更好的方法吗?
这是代码:
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("https://genius.com/song");
var node = doc.DocumentNode.SelectSingleNode("//div[@class='lyrics']");
if (node != null)
{
string lyrics = node.InnerText.Trim();
Console.WriteLine(lyrics);
}
Console.ReadLine();
解决方案
推荐阅读
- python - 如何从 requirements.txt 安装带有 pip 和 setup.py 的 github zip 文件?
- mysql - 求 MySQL 表结构推荐
- go - goroutine different behaviour for statement execution and function execution
- python - 如果将 Tensorflow 对象保存到全局变量并检索到,则 Tensorflow.Session 为 None
- javascript - 访问对象内部的属性
- selenium-webdriver - 无法在 Linux(debian)机器上调用 chromedriver
- javascript - React 多步骤表单提交和验证
- scala - 无法在 spark 中使用 foreachBatch 创建多个文件(此代码现在可以使用)
- react-native - 如何将 react-navigation 中的 state.params 作为 props 传递给 react native
- r - 删除多个数据框中的行