关于无界面浏览器的使用

phantomJS是一个独立的无界面浏览器,也称JS模拟器,之前介绍的使用谷歌,火狐等浏览器界面操作的,并不适合在服务器上使用,而phantomJs就适合.

一、环境的搭建

  • 1、官网地址
  • 2、下载地址
  • 3、mac上配置环境

    • 1.将下载的文件解压放到自己喜欢的位置
    • 2.打开文件

      vim ~/.bash_profile
      
    • 3.配置环境变量

      export PATH="/Users/name/Applications/phantomjs/bin:$PATH"
      
    • 4.执行

      source  ~/.bash_profile
      
    • 5.测试

      phantomjs --version
      

二、PhantomJsselenium的集成

  • 1、测试代码

    from selenium import webdriver
    
    # 这里的executable_path="你上面解压的路径"
    browser = webdriver.PhantomJS(executable_path='/Users/shuiping.kuang/Documents/software/phantomjs-2.1.1-macosx/bin/phantomjs')
    browser.get('http://httpbin.org/ip')
    print(browser.current_url)
    print(browser.page_source)
    
  • 2、运行上面的代码会出现一个警告提示

    UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
      warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '
    

三、使用Headless Chrome浏览器的介绍

  • 1、关于Headless Chrome的介绍

Headless ChromeChrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序。相比于现代浏览器,Headless Chrome 更加方便测试 web 应用,获得网站的截图,做爬虫抓取信息等。相比于较早的 PhantomJSSlimerJS 等,Headless Chrome 则更加贴近浏览器环境。

  • 2、Headless Chrome作用

为了提高selenium脚本的执行速度,我们可能会考虑使用PhantomJS这类的Headless 浏览器,但这些工具对JavaScript支持不好或者对web的支持不好,占用资源多,跟真实浏览器存在一定的差异等等问题。Chrome 浏览器提供的Headless Chrome,简单说我们也可以在不打开chrome GUI的情况在Chrome下执行我们的Selenium脚本,可提升脚本的执行效率。

  • 3、Headless ChromeChrome版本要求 官方文档中介绍,maclinux环境要求chrome版本是59+,而windows版本的chrome要求是60+

  • 4、更多可以参考

四、在selenium中集成Headless CHrome

  • 1、确保前面selenium可以打开谷歌浏览器访问网站
  • 2、实现代码

    from selenium import webdriver
    
    option = webdriver.ChromeOptions()
    option.add_argument('headless')
    browser = webdriver.Chrome(chrome_options=option)
    
    browser.get('http://www.httpbin.org/ip')
    print(browser.page_source)
    

results matching ""

    No results matching ""