【发布时间】:2017-05-08 00:13:19
【问题描述】:
我正在用 nodejs 编写一个脚本来自动从在线目录中检索数据。 我知道我从来没有这样做过,所以我选择了 javascript,因为它是我每天都在使用的语言。
因此,我可以从谷歌上找到的一些技巧中找到,使用 Cheerios 请求轻松访问页面的 dom 组件。 我找到并检索了所有必要的信息,唯一缺少的步骤是恢复到下一页的链接,除非该链接是在页面加载后 4 秒生成的,并且链接包含哈希,因此这一步是不可避免的。
我想做的是在加载后4-5秒恢复页面的dom,以便能够恢复链接
我在互联网上查看了很多关于使用 PhantomJS 进行此操作的建议,但在多次尝试使用 node 后我无法让它工作。
这是我的代码:
#!/usr/bin/env node
require('babel-register');
import request from 'request'
import cheerio from 'cheerio'
import phantom from 'node-phantom'
phantom.create(function(err,ph) {
return ph.createPage(function(err,page) {
return page.open(url, function(err,status) {
console.log("opened site? ", status);
page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', function(err) {
//jQuery Loaded.
//Wait for a bit for AJAX content to load on the page. Here, we are waiting 5 seconds.
setTimeout(function() {
return page.evaluate(function() {
var tt = cheerio.load($this.html())
console.log(tt)
}, function(err,result) {
console.log(result);
ph.exit();
});
}, 5000);
});
});
});
});
但我收到此错误:
return ph.createPage(function (page) { ^
TypeError: ph.createPage 不是函数
我将要做的事是做我想做的事的最佳方式吗?如果不是最简单的方法是什么?如果是这样,我的错误来自哪里?
【问题讨论】:
标签: javascript jquery node.js phantomjs cheerio