Headless Chrome

2018-06-05  本文已影响43人  喵帕斯0_0

之前讲过Selenium+Chrome,但那需要桌面环境。本来想研究下基于无桌面环境的Selenium + Phantomjs,在使用的过程中惊闻selenium将抛弃,无奈只能放弃,经google,发现去年Google发布了Headless模式的Chrome(Chrome 59 beta开始支持headless模式),Headless指无需桌面环境,可直接运行于服务器,在爬虫、自动化测试键值无敌,本篇简要介绍如何安装与如何通过Selenium连接Headless Chrome。

安装

环境:Ubuntu14.04 Server

安装 google-chrome
  1. 安装相应库文件:sudo apt-get install libxss1 libappindicator1 libindicator7
  2. 下载google-chrome:wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
  3. 安装google-chrome:sudo dpkg -i google-chrome*.deb
  4. 如果3报错,运行sudo apt-get install -f
  5. 运行:google-chrome --headless --remote-debugging-port=8888 https://chromium.org --disable-gpu,如果已root权限运行,需添加:--no-sandbox
  6. 再启终端,访问:curl http://localhost:8888
安装chrome-driver
  1. 下载文件:wget https://chromedriver.storage.googleapis.com/2.31/chromedriver_linux64.zip
  2. 解压:unzip chromedriver_linux64.zip
  3. 移动:mv chromedriver /usr/local/bin
  4. 赋予权限:sudo chmod u+x,o+x /usr/local/bin/chromedriver
  5. 测试:chromedriver
与Selenium相结合
from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

chrome_options.add_argument('--no-sandbox')                        #root用户需要添加此项
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='/usr/local/bin/chromedriver')


driver.get('https://www.github.com')

print(driver.title.encode('utf-8'))

driver.close()

总结

最近简单学习了Selenium+Chrome的使用方法,是为了接下来爬取动态页面使用的。后面会再与Scrapy相结合。

上一篇下一篇

猜你喜欢

热点阅读