phantomJs原理

引用文段:
连接:https://www.jianshu.com/p/0254391918f7javascript

网页渲染可分为服务端渲染和客户端渲染,前者是指你在浏览器地址栏输入一个网址,Web服务器处理请求过程就将全部须要呈现的html元素都构造好了,浏览器收到响应就直接render出页面,客户端工做量少;后者是指Web服务器仅仅将必要的信息做为响应传到浏览器,浏览器须要根据响应进行二次处理,好比ajax请求,再根据ajax请求的结果构造html。html

urllib不具有js执行能力,天然不能模拟浏览器执行js请求ajax等效果,因而,所谓无头浏览器phontmJs就出现了,借助这个工具能够模拟webkit执行,还能够包含更多js库好比jQuery等对页面的js执行进行扩展java


 
 
第一个phantomjs程序:
在E盘下创建文档,m.js
var page = require('webpage').create();
phantom.outputEncoding="gbk"; #设定字符集类型
page.open('http://music.163.com/', function(status) {
  console.log("Status: " + status);
  if(status === "success") {
    console.log(page.content);#打印phantomJS处理后的页面内容
  }
  phantom.exit();
});

 

而后在E盘下(m.js所在目录)打开cmd,执行web

phantomjs m.js

 

会打印出网易音乐的页面内容:ajax

 

也能够将请求页面截图保存:浏览器

var page = require('webpage').create();
page.open('http://music.163.com/', function(status) {
  console.log("Status: " + status);
  if(status === "success") {
    page.render('music.png');
  }
  phantom.exit();
});

文件会被保存在m.js所在目录下服务器

相关文章
相关标签/搜索