nodejs抓取动态网页(PhantomJs就是没有没有界面的浏览器界面界面)
优采云 发布时间: 2022-03-16 07:08nodejs抓取动态网页(PhantomJs就是没有没有界面的浏览器界面界面)
我渴望一个更强大,但使用起来不太麻烦的工具。
幻影
上述问题可以用 PhantomJs 解决。
PhantomJs 是一个没有界面的浏览器。
安装
使用 cnpm 安装 PhantomJS:
cnpm install phantomjs --save-dev
我这里没有选择全局安装,因为如果我是全局安装的,当别人使用我的源代码时,我不知道有这样的依赖,项目运行不了。
如果你也选择本地安装,那么你需要在 package.json 中的脚本中添加一段:
"phantomjs":"node_modules/.bin/phantomjs"
这个后面会用到,到这里,安装就完成了。
写代码
我们新建一个文件,名字随意,这里我新建一个 main.js :
var webpage = require('webpage');
var page = webpage.create();
page.open('http://www.baidu.com/', function (status) {
var data;
if (status === 'fail') {
console.log('open page fail!');
} else {
console.log(page.content);//打印出HTML内容
}
page.close();//关闭网页
phantom.exit();//退出phantomjs命令行
});
这里有一个网页模块,我们刚才明明没有这个模块,为什么要引用这个模块???
当然,不能引用。如果我们使用 node main.js 来运行这段代码,它就不会运行。我们应该像这样运行这段代码:
npm run phantomjs main.js
这里的 npm run phantomjs 对应我们之前在 package.json 中添加的命令,非常方便,几乎和 http 模块一样方便。
page.content是html代码,这个页面对象属性很多,功能更强大。
此时,您已经开始了。如果想了解更多,可以去phantomjs官网查看文档。
以上内容就是如何在Node.JS中使用PhantomJs爬取网页。你有没有学到任何知识或技能?如果您想学习更多技能或丰富知识储备,请关注易宿云行业资讯频道。