来源:python中国网 时间:2020-01-21

  本节测试下selenium启动浏览器的一些配置参数,比如UA信息,模拟手机,是否加载图片等。首先找到可以检测浏览器UA信息及屏幕分辨率的网站。

  http://www.sunchateau.com/free/UA.htm,打开该网站即可显示当前浏览器和屏幕的信息。

# -*- coding: utf-8 -*-
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

option = Options()
# 移动UA
iphone_ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
# 窗口大小
option.add_argument('--window-size=900,800')
# 移动分辨率及UA
mobile_emulation = {
    "deviceMetrics": {"width": 375, "height": 667,'pixelRatio':3},
    "userAgent": iphone_ua
}
# 禁止图片和弹窗
prefs = {
    'profile.default_content_setting_values' : {
        'images' : 2, # 禁止图片加载
        'notifications':2 # 禁止弹窗
    }
}

option.add_experimental_option('prefs',prefs)
option.add_experimental_option('mobileEmulation',mobile_emulation)
option.add_argument('--disable-gpu') # linux下用 避免一些bug
#手动指定浏览器位置 如路径是谷歌默认安装位置可省略
option.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"  
driver = webdriver.Chrome(options=option)
driver.get('http://www.sunchateau.com/free/UA.htm')


time.sleep(5)
driver.quit()


  运行代码,可以看到该网站显示的信息和我们配置的完全一样!说明配置有效

  配置UA也可以用如下方法

	  option.add_argument('--user-agent=""') # 设置请求头的User-Agent

  禁止加载图片也可以如下方法

	  option.add_argument('--blink-settings=imagesEnabled=false')

  更多启动参数可以参考这里的文档

  https://peter.sh/experiments/chromium-command-line-switches/

  但是是否可行一定要亲自尝试,一种配置如果版本不同可能就不生效了!常见的配置如下:

	  option.add_argument('--user-agent=""') # 设置请求头的User-Agent

	  option.add_argument('--window-size=1280x1024') # 设置浏览器窗口大小

	  option.add_argument('--start-maximized') # 最大化运行(全屏窗口),不设置,取元素会报错

	  option.add_argument('--disable-infobars') # 禁用浏览器正在被自动化程序控制的提示!对于selenium3版本谷歌浏览器79.0.3945.88并没有效果

	  option.add_experimental_option("excludeSwitches", ['enable-automation']);# 正常浏览器window.navigator.webdriver的值为 undefined。而使用selenium访问则该值为true,该方法规避这种风险,但是谷歌浏览器79.0.3945.88不生效。

	  option.add_argument('--incognito') # 隐身模式(无痕模式)

	  option.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面

	  option.add_argument('--disable-javascript') # 禁用javascript

	  option.add_argument('--blink-settings=imagesEnabled=false') # 不加载图片, 提升速度

	  option.add_argument('--headless') # 无头模式 浏览器不提供可视化页面

	  option.add_argument('--ignore-certificate-errors') # 禁用扩展插件并实现窗口最大化

	  option.add_argument('--disable-gpu') # 禁用GPU加速

	  option.add_argument('–disable-software-rasterizer')

	  option.add_argument('--disable-extensions')

	  option.add_argument('--start-maximized')