2

我正在尝试解析 Grooveshark 中的歌曲,但我不知道如何访问 JavaScript 更新的源代码。当我使用 URL 时,我得到的是原始源而不是由 JavaScript 更新的实时源,这意味着我无法访问一些新的 ID 数据。

var node = doc.DocumentNode.SelectSingleNode("//*[@id='now-playing-metadata']/a");
text = node.FirstChild.InnerText.Trim();

我正在使用 HTML Agility 库来解析网站。

4

1 回答 1

1

正如您所发现的,问题在于 Html Agility Pack 仅使用 Http 客户端将 URL 作为字符串下载。在您的情况下,您需要在带有 DOM 的 Javascript 引擎中执行下载的内容。我建议使用像 phantom.js 这样的无头浏览器客户端,有可用的 C# 驱动程序。

使用 phantom.js,您可以执行以下操作:

driver.Navigate().GoToUrl("http://www.grooveshark.com/");
var node = driver.FindElement(By.Id("now-playing-metadata"));
于 2013-08-21T13:48:09.547 回答