zoukankan      html  css  js  c++  java
  • selenium之设置无头浏览器及代理

    一. 应用领域

    在自动化测试以及爬虫领域,无头浏览器的应用场景非常广泛。

    二. 无头浏览器介绍

    通常大家在打开网页的工具就是浏览器,通过界面上输入网址就可以访问相应的站点内容,这个就是通常所说的基于界面的浏览器。除了这种浏览器之外,还有一种叫做无头浏览器,主要是用作爬虫,用以捕捉Web上的各类数据;这里的无头主要是指没有界面,完全是后台操作。它就是一个真实的浏览器。只是这个浏览器是无界面的。也称为无界面浏览器

    三. selenium之谷歌

    1. chromedriver.exe下载地址

    https://npm.taobao.org/mirrors/chromedriver

    2. 谷歌无头浏览器

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='Z:chromedriver_win32chromedriver.exe')
    driver.get("http://httpbin.org/ip")
    print(driver.page_source)
    driver.quit()
    

    3. 谷歌无头浏览器加IP代理

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument("--proxy-server=http://代理服务器地址:代理服务器端口号")
    driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='Z:chromedriver_win32chromedriver.exe')
    driver.get("http://httpbin.org/ip")
    print(driver.page_source)
    driver.quit()
    

    四. selenium之火狐

    1. geckodriver.exe下载地址

    https://github.com/mozilla/geckodriver/releases

    2. 火狐无头浏览器

    from selenium import webdriver
    
    profile = webdriver.FirefoxOptions()
    profile.add_argument('-headless')  # 设置无头模式
    browser = webdriver.Firefox(options=profile, executable_path='Z:geckodriver-v0.29.0-win64geckodriver.exe')
    browser.get('http://httpbin.org/ip')
    print(browser.page_source)
    browser.quit()
    

    3. 火狐无头浏览器加代理

    from selenium import webdriver
    
    profile = webdriver.FirefoxOptions()
    profile.add_argument('-headless')
    # 设置代理服务器
    profile.set_preference('network.proxy.type', 1)
    profile.set_preference('network.proxy.http', 代理服务器IP地址[字符串类型])
    profile.set_preference('network.proxy.http_port', 代理服务器端口号[整数类型])
    
    browser = webdriver.Firefox(options=profile, executable_path='Z:geckodriver-v0.29.0-win64geckodriver.exe')
    browser.get('http://httpbin.org/ip')
    print(browser.page_source)
    browser.quit()
    

    五. 扩展小知识

    其实还有一个是PhantomJS可以设置无头浏览器。但是这个目前停止更新了,所以我就不过多地介绍它了。真正掌握上面的两种主流的用在开发方面的浏览器就已经差不多了。

    六. 扩展

    1. 不关闭浏览器

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    chrome_options.add_experimental_option("detach", True) # 不关闭浏览器
    driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='Z:chromedriver_win32chromedriver.exe')
    driver.maximize_window()
    driver.get("http://www.baidu.com")
    print(driver.page_source)
    
  • 相关阅读:
    [Jweb] Servlet 生命周期, TestLifeCycleServlet extends HttpServlet
    [Java] Javadoc jdk 下载地址
    [Jweb] 在 servlet 中重写 service() 方法,不重写 doGet, doPost 方法,示例。
    [Jweb] Servlet / GenericServlet / HttpServlet 及其方法示意图
    [Jweb] 第一个通过 tomcat 配置,浏览器访问的 web 界面
    [Jweb] tomcat 知识点 (from bjsxt ZZY)
    [Jweb] HTTP 1.1与HTTP 1.0的比较 (from bjsxt 张志宇)
    post方式提交数据
    php页面获取数据库中的数据
    表单输入框样式
  • 原文地址:https://www.cnblogs.com/zhenzi0322/p/14365354.html
Copyright © 2011-2022 走看看