python

当前位置:首页 > selenium教程 > 当前文章

selenium教程

selenium启动禁用图片,UA,窗口,无头模式,手机模式,弹窗等配置大全

2020-04-10 194赞 python中国网
每篇文章努力于解决一个问题!python高级、python面试全套、操作系统经典课等可移步文章底部。

  本节测试下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/

  有些有强迫症的同学非要指明谷歌浏览器路径和webdriver的路径,我就单独列出来这个

from selenium import webdriver
from selenium.webdriver.chrome.options import Options


option = Options()
# 谷歌浏览器路径
option.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"  
# webdriver的路径
driver = webdriver.Chrome(executable_path='D:/python3/install/chromedriver')

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

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

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

	  option.add_argument('--start-maximized') # 浏览器启动时全屏

	  option.add_argument('--disable-infobars') # 禁用浏览器正在被自动化程序控制的提示!谷歌76版本起该方法失效。

	  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') # 屏蔽--ignore-certificate-errors提示信息

	  option.add_argument('--disable-gpu') # 禁用谷歌浏览器GPU加速-配置1(linux上用)

	  option.add_argument('–disable-software-rasterizer')# 禁用谷歌浏览器GPU加速-配置2(linux上用)

	  option.add_argument('--disable-extensions')# 禁用扩展插件

	  

	  

文章评论

selenium启动禁用图片,UA,窗口,无头模式,手机模式,弹窗等配置大全文章写得不错,值得赞赏