【发布时间】:2017-11-20 14:39:35
【问题描述】:
我从http://phantomjs.org/page-automation.html中举了一个例子,因为我需要在抓取之前在JS网站上按下一个按钮。
var page = require('webpage').create();
page.open('http://www.sample.com', function() {
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
page.evaluate(function() {
$("button").click();
});
phantom.exit()
});
});
但是当我运行这段代码时,我得到了这个错误:
work7.rb:5: `$(' 不允许作为全局变量名
work7.rb:5:语法错误,意外的输入结束 $("button").click();
PhantomJS 需要正确吗?
var page = require('webpage').create();
page.open('http://example.com', function(status) {
});
没用!
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require': 无法加载此类文件 -- 网页 (LoadError)
来自 /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in 需要'
来自 work7.rb:3:in '
我做错了什么?
【问题讨论】:
-
你似乎用 Ruby 解释 Javascript!
-
所有我需要的打开页面。稍等一下,因为 JS 需要一些时间来渲染数据。然后单击一个按钮并抓取页面。就这样。请帮帮我。
-
我只是从 PhantomJS 的文档中复制片段,但它不起作用!我的系统有问题吗?我忘了要求什么?
-
您上面的代码是 JavaScript。您需要使用像 node.js 这样的 JavaScript 运行时来执行它。但是你不能使用 Ruby 来做到这一点。
-
我明白了。关于 PhantomJS 的主要网站不适用于 Ruby。对于 Ruby,我们应该使用 github.com/teampoltergeist/poltergeist/tree/v1.15.0 或 readysteadycode.com/…
标签: javascript ruby web-scraping phantomjs browser-automation