0

参考这个答案,我试图从任何 HTML 中获取带有 ruby​​ 语言的 HTML。

对于任何简单的网站都可以使用这些方法。但是当我尝试将这些用于Coursera Site时,结果还没有所有的数据。似乎他们在这里请求数据源并使用一些 javascript 来操作所有内容。

所以,我的问题。我是否需要在 Rails(服务器端)上调用一些 jQuery 命令来在数据全部加载完成时提取数据?

注意:我对 Ruby on Rails 很陌生,任何来自 gitHub 的示例源代码或演示应用程序或其他任何东西都非常有帮助。提前致谢

4

1 回答 1

0

听起来您将需要一个可以在尝试提取 HTML 之前呈现 JS 的工具。可能有很多选择,唯一想到的工具是PhantomJS,一个支持站点报废的无头 WebKit。查看有关DOM 操作的部分,了解有关您可以使用它做什么的一些想法。

来自网站的示例:

以下 useragent.js 示例演示了读取 id 为 myagent 的元素的 innerText 属性:

var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('http://www.httpuseragent.org', function (status) {
    if (status !== 'success') {
        console.log('Unable to access network');
    } else {
        var ua = page.evaluate(function () {
            return document.getElementById('myagent').innerText;
        });
        console.log(ua);
    }
    phantom.exit();
});
于 2012-09-02T13:32:11.460 回答