如何用phantomjs去抓取js渲染后的页面

 我来答
最爱寂寞的刺猬
2017-06-10 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.3万
采纳率:66%
帮助的人:1658万
展开全部
+ $(".explanation").text());

});

phantom.exit(0);

});

} else{

phantom.exit(1);

}

});

3.执行状态为一直卡在那里,不报错也不退出

为了查看程序的内部执行状态,加入运行日志

1

2

3

4

5

6

7

page.onResourceRequested = function(req) {
console.log('requested: '+ JSON.stringify(req, undefined, 4));
};
page.onResourceReceived = function(res) {
console.log('received: '+ JSON.stringify(res, undefined, 4));
};
4.发现程序一直卡在一个js的请求

1

5.在自己的服务器上用python的SimpleHTTPServer 简单搭了一个http的server先FQ把这个js下载下来,放到web上

6.修改代码把includeJS指向自己搭的http server上

1

<br><br><br><br><br>
备注:

调试过程发现phantomjs还有一个问题,就是page.open是异步执行的,如下代码:

1

2

3

4

5

6

7

8

9

varwebPage = require('webpage');
varpage = webPage.create();
page.open('http://www.baidu.com/', function(status)
追答
{
console.log('Status: '+ status);
// Do other things here...
});
phantom.exit(1)
你执行完后,打印返回值,echo $?,会得到1

而你把

1

phantom.exit(1)
注释之后,会得到status值。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式