phantomjs下载安装与使用

一、PhantomJS是什么?
PhantomJS是一个基于webkit的javaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行javaScript代码。任何你可以基于在webkit浏览器做的事情,它都能做到。它不仅是个隐性的浏览器,提供了诸如css选择器、支持wen标准、DOM操作、json、HTML5等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。phantomJS的用处可谓非常广泛诸如网络监测、网页截屏、无需浏览器的wen测试、页面访问自动化等。

 

二、phantomjs的下载安装 : http://phantomjs.org/download.html

 

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

 

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

 

(如果用的是anaconda,把
phantomjs.exe 复制到anaconda根目录下的scripts下即可)

 

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

 

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

 

phantomjs

 

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

 

 

小例子:

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

 

 

试着抓取QQ音乐,页面是异步加载的 加了个10秒的时间等待

from selenium import webdriver
from bs4 import BeautifulSoup
import time

browser = webdriver.PhantomJS()
browser.get('https://y.qq.com/portal/search.html#page=1&searchid=1&remoteplace=txt.yqq.top&t=song&w=%E5%91%A8%E6%9D%B0%E4%BC%A6')
time.sleep(10) #给页面加载预留足够的时间
print(browser.page_source)
soup = BeautifulSoup(browser.page_source,'html.parser')
title = soup.find(class_='mod_intro__base').find(class_='mod_intro__title').text
print(title)

 

发表评论

邮箱地址不会被公开。 必填项已用*标注