PhantomJS+Selenium爬取数据

Selenium python版本更新日志
Selenium官网
PhantomJS官网下载地址

最新版selenium已经跟PhantomJS分手了,去查了下PhantomJS已经停止更新,并维持在最终版的2.1.1,并且selenium3.8.1版本声明弃用PhantomJS建议使用Chrome或者Firefoxheadless模式,也就是无界面模式.但是这依然需要你安装Chrome或者Firefox
在一些老的Linux系统上,比如在无图形化界面的CentOS6安装chrome你可能会抓狂,所以这里简单介绍下老版本的selenium使用

老的版本信息

selenium==3.8.0        # 最后一个支持phantomjs的selenium版本
phantomjs==2.1.1

selenium最新版启用headless模式

# Google chrome 为例
options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
browser = webdriver.Chrome(chrome_options=options)

解决无图形化PhantomJS中文问题

# centos为例,其他系统就是安装中文字体就行
yum install bitmap-fonts bitmap-fonts-cjk   # cjk 可能提示无效

简单代码示例

以下为度娘搜索例子,仅仅取值搜索条目结果
可以使用这段代码测试Linux服务器部署的环境是否正常,比如中文是否能正常显示之类的

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Date: 2018-07-10 15:34:06

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time

# 伪装Chrome浏览器
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = (
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 \
    (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"
)

# 实例化PhantomJS浏览器对象
driver = webdriver.PhantomJS("E:\VirtualENV\old_spider\phantomjs.exe",
                             desired_capabilities=dcap)

# Linux 路径
# driver = webdriver.PhantomJS("/root/python3/phantomjs",
#                              desired_capabilities=dcap)


# 配置浏览器窗口大小,Phantomjs必须配置此项
driver.set_window_size(1920, 1080)

# wd后面为搜索内容
driver.get("https://www.baidu.com/s?wd=123456789")
time.sleep(2)
result = driver.find_element_by_xpath('//*[@id="container"]/div[2]/d\
iv/div[2]/span').text
print(result)  # 百度为您找到相关结果约12,800,000个

driver.close()
driver.quit()

你可能感兴趣的:(PhantomJS+Selenium爬取数据)