Hello World

python爬虫篇之 PhantomJS(待续)

前言

大家有没有发现之前我们写的爬虫都有一个共性,就是只能爬取单纯的html代码,如果页面是JS渲染的该怎么办呢?如果我们单纯去分析一个个后台的请求,手动去摸索JS渲染的到的一些结果,那简直没天理了。所以,我们需要有一些好用的工具来帮助我们像浏览器一样渲染JS处理的页面。

其中有一个比较常用的工具,那就是  :

 

PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎。它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVG。

 

安装 :http://phantomjs.org/download.html

检测是否安装成功:

 

官方文档:http://phantomjs.org/quick-start.html

 

 

快速开始

 

程序

程序第一个:

当然是Hello World,新建一个 js 文件。命名为 hello.js

console.log('Hello, world!');
phantom.exit();

 

命令行输入:

 

程序输出了 Hello,world!程序第二句话终止了 phantom 的执行。

注意:phantom.exit();这句话非常重要,否则程序将永远不会终止。

 

 

程序第二个

在Pycharm的project,依然用 hello.js

 1 #示例
 2 var page = require('webpage').create();
 3 phantom.outputEncoding = "gbk";
 4 page.open("http://www.cnblogs.com/front-Thinking", function (status) {
 5     if (status === "success") {
 6         console.log(page.title);
 7     } else {
 8         console.log("Page failed to load.");
 9     }
10     phantom.exit(0);
11 });

 

cmd命令行工具,切换到当前目录,结果如下:

或者:

 

 

  简要介绍下上面的代码:第2行,webpage是phantomjs的核心模块之一,它给用户提供了访问、操作、选择web文档的接口。第3行,设置下编码格式,否则输出的可能是乱码。第4行,运行page.open函数,其中第一个参数是你要访问的url,第二个参数是一个回调函数。在回调函数里我们检查了下返回的状态,如果是success那么我们就将浏览的url制定文档的title打印出来,如你所见,如果不是那么打印文档加载出错。最后一行退出phantomjs执行环境。

 

posted @ 2017-10-11 00:16  nayike  阅读(224)  评论(0编辑  收藏  举报

Hello