美文网首页
Headless Chrome

Headless Chrome

作者: 喵帕斯0_0 | 来源:发表于2018-06-05 11:16 被阅读43次

    之前讲过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相结合。

    相关文章

      网友评论

          本文标题:Headless Chrome

          本文链接:https://www.haomeiwen.com/subject/efcpsftx.html