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

Selenium支持PhantomJS,这样在运行的时候就不会再弹出一个浏览器了。而且PhantomJS的运行效率也很高,还支持各种参数配置,使用非常方便。下面我们就来了解一下PhantomJS的安装过程。

1. 相关链接

2. 下载PhantomJS

我们需要在官方网站下载对应的安装包,PhantomJS支持多种操作系统,比如Windows、Linux、Mac、FreeBSD等,我们可以选择对应的平台并将安装包下载下来。

下载完成后,将PhantomJS可执行文件所在的路径配置到环境变量里。比如在Windows下,将下载的文件解压之后并打开,会看到一个bin文件夹,里面包括一个可执行文件phantomjs.exe,我们需要将它直接放在配置好环境变量的路径下或者将它所在的路径配置到环境变量里。比如,我们既可以将它直接复制到Python的Scripts文件夹,也可以将它所在的bin目录加入到环境变量。

Windows下环境变量的配置可以参见1.1节,Linux及Mac环境变量的配置可以参见1.2.3节,在此不再赘述,关键在于将PhantomJS的可执行文件所在路径配置到环境变量里。

配置成功后,可以在命令行下测试一下,输入:

phantomjs

如果可以进入到PhantomJS的命令行,那就证明配置完成了,如图1所示。

图1 控制台

3. 验证安装

在Selenium中使用的话,我们只需要将Chrome切换为PhantomJS即可:

from selenium import webdriver
browser = webdriver.PhantomJS()
browser.get('https://www.baidu.com')
print(browser.current_url)

运行之后,我们就不会发现有浏览器弹出了,但实际上PhantomJS已经运行起来了。这里我们访问了百度,然后将当前的URL打印出来。

控制台的输出如下:

https://www.baidu.com/

如此一来,我们便完成了PhantomJS的配置,后面可以利用它来完成一些页面的抓取。

这里我们介绍了Selenium对应的三大主流浏览器的对接方式,后面我们会对Selenium及各个浏览器的对接方法进行更加深入的探究。

芝麻HTTP:PhantomJS的安装的更多相关文章

  1. selenium和PhantomJS的安装

    针对w10系统 selenium安装 pip install selenium 默认安装的是3.x版本,但是3.x版本不支持PhantomJS,所以要安装2.x版本 pip install selen ...

  2. node phantomjs linux 安装问题

    本地为macos系统,phantomjs安装一直没问题:后来采用了phantom-pool,增加了连接池,安装也没有问题.这时候不需要安装phantom了,因为phantom-pool是依赖于phan ...

  3. PhantomJS的安装和使用

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

  4. phantomjs的安装和使用链接

    1.先下载phantomjs并解压2.将phantomjs的bin目录配置到环境变量中3.测试phantomjs,cmd下输入phantomjs进入 (按 Ctrl + c 组 合键退出和 phant ...

  5. phantomjs 的安装部署

    下载地址http://phantomjs.org/download.htmlwget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs ...

  6. MAC 上的Phantomjs的安装和配置

    1.下载 http://phantomjs.org/download.html 选择mac版本下载 2.下载完成后,解压缩,然后放到自己的一个目录下面 例如:/usr/local/Phantomjs/ ...

  7. [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

    最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的“原图”等,此时尝试学习Phantomjs和CasperJS来解决这个问题 ...

  8. 求知的木头 Cannot load browser "PhantomJS": it is not registered! Perhaps you are missing some plugin? 测试安装遇到的BUG

    原文链接 求知的木头   Cannot load browser "PhantomJS": it is not registered! Perhaps you are missin ...

  9. Cannot load browser "PhantomJS": it is not registered! Perhaps you are missing some plugin? 测试安装遇到的BUG

    安装了半天phantomjs就是安装不好,后面想了个死办法,http://phantomjs.org/download.html这个网址下先去下载好 phantomjs-2.1.1-windows.z ...

随机推荐

  1. MySQL死锁[转]

    案例描述       在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下:       (1)inse ...

  2. CF 375D. Tree and Queries【莫队 | dsu on tree】

    题意: 一棵树,询问一个子树内出现次数$≥k$的颜色有几种 强制在线见上一道 用莫队不知道比分块高到哪里去了,超好写不用调7倍速度!!! 可以用分块维护出现次数这个权值,实现$O(1)-O(\sqrt ...

  3. BZOJ 2631: tree [LCT splay区间]

    2631: tree Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 3854  Solved: 1292[Submit][Status][Discus ...

  4. Docker小记 — Docker Engine

    前言 用了Docker方才觉得生产环境终于有了他该有的样子,就像集装箱普及之后大型货轮的价值才逐渐体现出来,Docker详细说明可查阅"官方文档".本篇为Docker Engine ...

  5. python重新利用shodan API

    前言: 之前写过一个shodan的API调用 感觉写的不这么好.然后现在重新写一个 shodan介绍: shodan是互联网上最可怕的搜索引擎. CNNMoney的一篇文章写道,虽然目前人们都认为谷歌 ...

  6. Java并发编程Semaphore

    信号量 信号量类Semaphore,用来保护对唯一共享资源的访问.一个简单的打印队列,并发任务进行打印,加入信号量同时之能有一个线程进行打印任务 . import java.util.concurre ...

  7. [POJ 3581]Sequence

    [POJ 3581]Sequence 标签: 后缀数组 题目链接 题意 给你一串序列\(A_i\),保证对于$ \forall i \in [2,n],都有A_1 >A_i$. 现在需要把这个序 ...

  8. Java经典编程题50道之三十二

    取一个整数a从右端开始的4-7位. public class Example32 {    public static void main(String[] args) {        cut(12 ...

  9. Sqlserver将数据从一张表插入到另一张表

    1.如果是整个表复制表达如下: insert into table1 select * from table2 2.如果是有选择性的复制数据表达如下: insert into table1(colum ...

  10. bzoj 2073 暴力

    2073: [POI2004]PRZ Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 442  Solved: 327[Submit][Status][D ...