正在使用维基上的 YQL XPath 查询获取 table 信息

Acquiring table info with YQL XPath query on wikia

Objective

warframe wikia.

中删除 HTML table

背景

我想在 warframe 中获取 table 的信息,Mods List table. To achieve this objective I read the HTML-parser on Node.js topic and concluded that using YQL 是我最好的选择。

代码

通过使用 Google Chrome 开发工具和两个 chrome 名为 CSS and XPath checker and XPath Helper 的扩展,我能够确定 table 我正在寻找以下 XPath 查询:

//*[@id="mw-content-text"]/div[33]/div/div[1]/table/tbody

现在,Chrome 说这是正确的路径,我使用的插件也建议这样做。

问题

问题是,当我使用 YQL 时,Json 中的结果与我期望的结果完全不同。事实上,它 returns 一个不同的 table 和杂项数据。

我很困惑为什么会这样。 Wikia 是一个简单的 HTML 页面,几乎没有任何动态信息,所以我真的不明白为什么我会得到错误的结果。

可能是什么问题?

不幸的是,YQL 无法正常处理随时间加载的页面,wikia 就是这种情况。

因此,即使 XPath 是正确的,当 Yahoo 发出第一个(也是唯一一个)请求时,它收到一个不完整的 HTML,并且永远不会完成它。

为了解决这个问题,我决定使用 npm-request and npm-cheerio 包在我的 nodejs 服务器中本地解析 HTML。

第一个包下载整个页面 HTML,第二个包解析它以获得我要查找的信息。

一个有效的解决方案,而不是依赖第三方工具,而是将所有工作转移到我的服务器上。

希望这对以后的人有帮助!