Node.js 动态网页爬取 PhantomJS 使用入门

原创NeverSettle101 发布于2017-03-24 09:34:45 阅读数 8309  收藏

版权声明:本文为 wintersmilesb101 -(个人独立博客– http://wintersmilesb101.online 欢迎访问)博主原创文章,未经博主允许不得转载。

既然是入门,那我们就从人类的起源。。PhantomJS 来说起吧。

1、PhantomJS是什么?
PhantomJS是一个基于webkit的javascript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情,它都能做到。它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、html5、Canvas、SVG等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。PhantomJS的用处可谓非常广泛,诸如网络监测、网页截屏、无需浏览器的 Web 测试、页面访问自动化等。
也就是说我们可以使用 PhantomJS 来模拟浏览器,而且是个无页面浏览器,想像一下我们的网页加载都是通过什么,浏览器,如果我们直接模拟浏览器加载,那么网页里面的什么 js 动态加载,ajax 动态的加载的东西啊全部不是问题,因为我们模拟的是浏览器,不过貌似效率上面略有欠缺,尤其是加载大型页面,对于此种我们可以选择放弃某些东西的加载,比如图片 css 之类,毕竟我们只是模拟请求不是为了界面,这样应该会提升一些速度。
下面给出几个地址
1.PhatomJS 官网
2.PhantomJS API
2、PhantomJS下载与安装
官方下载地址:http://phantomjs.org/download.html。目前官方支持三种操作系统,包括windows\Mac OS\linux这三大主流的环境。你可以根据你的运行环境选择要下载。
载完成后解压文件,建议为方便使用,单独放在一个文件夹里,其中路径最好不要有中文,以免出现什么奇怪的东西。到这里,你已经成功下载安装好PhantomJS了。那么,打开刚刚解压的陌路 phantomjs\bin 文件夹,双击运行phantomjs.exe,出现如下界面,那么你就可以运行JS代码了。不过这样还是比较麻烦,那么我们就来配置系统环境变量 右击我的电脑–>点击管理–>高级系统设置–>环境变量,然后找到系统的 Path WIn10的话直接点击新建然后贴上你的 PhatomJS 解压路径,注意路径要一直到 bin 文件夹,如果是 win7 就直接在现有的变量后面添加路径,注意开头要加 ; 符号。
为了测试是否环境变量配置正确,你可以 cmd 输入 phantomjs ,出现如下界面就成功了

下面我们就可以开始上菜了,HelloWorld。在你的工程目录下新建一个 hello.js 文件,输入以下代码,这次我们还是看看网易新闻 http://news.163.com/
var page = require('webpage').create();
phantom.outputEncoding="gbk";//指定编码方式
page.open("http://news.163.com/", function(status) {
if ( status === "success" ) {
console.log(page.title);//输出网页标题
} else {
console.log("网页加载失败");
}
phantom.exit(0);//退出系统
});
然后 cmd 进入工程目录,也就是 hello.js 的目录,如下:输入 phantomjs hello.js 运行


 好了我们已经跑的第一个 PhantomJS程序了,其他的这篇博客讲的比较详细,传送门

Node.js 动态网页爬取 PhantomJS 使用入门(转)的更多相关文章

  1. Node JS爬虫:爬取瀑布流网页高清图

    原文链接:Node JS爬虫:爬取瀑布流网页高清图 静态为主的网页往往用get方法就能获取页面所有内容.动态网页即异步请求数据的网页则需要用浏览器加载完成后再进行抓取.本文介绍了如何连续爬取瀑布流网页 ...

  2. 动态网页爬取例子(WebCollector+selenium+phantomjs)

    目标:动态网页爬取 说明:这里的动态网页指几种可能:1)需要用户交互,如常见的登录操作:2)网页通过JS / AJAX动态生成,如一个html里有<div id="test" ...

  3. python动态网页爬取——四六级成绩批量爬取

    需求: 四六级成绩查询网站我所知道的有两个:学信网(http://www.chsi.com.cn/cet/)和99宿舍(http://cet.99sushe.com/),这两个网站采用的都是动态网页. ...

  4. 爬虫入门(三)——动态网页爬取:爬取pexel上的图片

    Pexel上有大量精美的图片,没事总想看看有什么好看的自己保存到电脑里可能会很有用 但是一个一个保存当然太麻烦了 所以不如我们写个爬虫吧(๑•̀ㅂ•́)و✧ 一开始学习爬虫的时候希望爬取pexel上的 ...

  5. Node.js 薄荷网爬取

    Node.js:是一个基于前端的服务器,主要的特点:单线程,异步I/O(对这个没有了解,开发起来真的会踩很多坑),事件驱动 前言:本人主要是一个以使用.Net平台下的语言,进行开发的一个菜鸡,之前面试 ...

  6. 动态网页爬取样例(WebCollector+selenium+phantomjs)

    目标:动态网页爬取 说明:这里的动态网页指几种可能:1)须要用户交互,如常见的登录操作:2)网页通过JS / AJAX动态生成.如一个html里有<div id="test" ...

  7. Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取

    区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...

  8. 爬虫系列5:scrapy动态页面爬取的另一种思路

    前面有篇文章给出了爬取动态页面的一种思路,即应用Selenium+Firefox(参考<scrapy动态页面爬取>).但是selenium需要运行本地浏览器,比较耗时,不太适合大规模网页抓 ...

  9. Node.js爬虫实战 - 爬你喜欢的

    前言 今天没有什么前言,就是想分享些关于爬虫的技术,任性.来吧,各位客官,里边请... 开篇第一问:爬虫是什么嘞? 首先咱们说哈,爬虫不是"虫子",姑凉们不要害怕. 爬虫 - 一种 ...

随机推荐

  1. prometheus学习系列一: Prometheus简介

    Prometheus简介 prometheus受启发于Google的Brogmon监控系统(相似kubernetes是从Brog系统演变而来), 从2012年开始由google工程师Soundclou ...

  2. VUE router-view key 属性解释

    router-view 作用, 你可以 router-view 当做是一个容器,它渲染的组件是你使用 vue-router 指定的. <template> <section clas ...

  3. .DS_Store文件是什么?Mac系统如何彻底清除该文件?

    用过Mac OS系统的都会注意到一个名为.DS_Store的隐藏文件,尤其是zip格式的压缩包解压的出来,会出现在各种文件夹内,非常烦人! 特别是把文件分享给使用windows的朋友的时候,这些文件会 ...

  4. javascript---call,apply,bind

    对于这三个函数,估计大家都还是很模糊,具体是用来干什么?简而言之,是用来对象冒充的. 首先这三个方法是每个函数都包含的非继承的的方法. 我来搬砖一下,此文引用 http://www.cnblogs.c ...

  5. Linux查看打日志文件

    1.如果文件比较小的话,使用vim直接查看,如果文件比较大的话,使用vim会直接卡主 2.如果想要查看正在滚动的日志文件.这个命令可以查看大文件. tail -f file Ctrl+c 终止tail ...

  6. Graylog-centos安装

    graylog安装 1.先决条件 yum install java-1.8.0-openjdk-headless.x86_64 -y #安装java软件包 yum install epel-relea ...

  7. Common Substrings POJ - 3415 (后缀自动机)

    Common Substrings \[ Time Limit: 5000 ms\quad Memory Limit: 65536 kB \] 题意 给出两个字符串,要求两个字符串公共子串长度不小于 ...

  8. LeetCode 722. Remove Comments

    原题链接在这里:https://leetcode.com/problems/remove-comments/ 题目: Given a C++ program, remove comments from ...

  9. Navicat连接oracle,出现Only compatible with oci version 8.1

    与本地oracle连接的时候,一般没问题,sqlplus和oci都是本地oracle自带的,(设置: 工具->选项->oci) 分别为:     oci:D:\app\pcman\prod ...

  10. vim文本编辑器——文件导入、命令查找、导入命令执行结果、自定义快捷键、ab命令、快捷键的保存

    1.文件的导入(r): 导入前: 导入后: 在光标处,将tmp目录下的zhbb文件的内容导入到了当前文件. 2.命令的查找: 3.导入命令的执行结果: 光标所在行为导入的位置. 4.自定义快捷键: ( ...