mb62abf3afb54fb2022-06-18 00:02:10
文章标签chromechrome浏览器加载文章分类虚拟化云计算阅读数1473
前言
1、 Chromeoptions 是Chrome浏览器的参数对象,是配置Chrome启动时属性的类。通过某些参数可以为Chrome浏览器添加启动参数。
2、Chrome浏览器启动时的参数携带过程:启动参数在初始化Chrome浏览器的webdriver对象时传入option,实现按特定参数启动。
3、 Chromeoptions 类是Selenium WebDriver中的一个概念,用于操作Chrome驱动程序的各种属性。
4、 ChromeOptions 是chromedriver支持的浏览器启动选项。
5、源代码位置: .\Lib\site-packages\selenium\webdriver\chrome\options.py
class Options(object):
```python
def __init__(self):
# 设置 chrome 二进制文件位置
self._binary_location = ''
# 添加启动参数
self._arguments = []
# 添加扩展应用
self._extension_files = []
self._extensions = []
# 添加实验性质的设置参数
self._experimental_options = {}
# 设置调试器地址
self._debugger_address = None
6、selenium工具操作浏览器默认是不加载任何用户配置,需要我们在初始化浏览器的webdriver对象时手动去加载或者去设置浏览器的初始化信息。
7、ChromOptions是一个配置Chrom浏览器启动时属性的类,通过该类可以为Chrome浏览器配置如下参数:
设置 chrome 二进制文件位置 (binary_location)
添加启动参数 (add_argument)
添加扩展应用 (add_extension, add_encoded_extension)
添加实验性质的设置参数 (add_experimental_option)
设置调试器地址 (debugger_address)
加载用户所有的Chrome浏览器配置
用Chrome浏览器地址栏输入 chrome://version/ ,查看自己的《个人资料路径》,然后在浏览器启动时,调用该用户配置文件。
selenium工具启动Chrome浏览器时配置选项详解_chrome浏览器
代码如下:selenium工具在初始化Chrome浏览器webdriver对象时已经加载了用户配置
```python
```python
#coding=utf-8
from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_argument('--user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data') # 设置成用户自己的数据目录
driver = webdriver.Chrome(chrome_options=option)
修改浏览器User-Agent用户代理信息(模拟移动终端信息)(已达到伪装浏览器的效果)
代码如下:伪装浏览器为手机端访问某网站
移动设备user-agent表格: http://www.fynas.com/ua
代码实例1:
```python
```python
#coding=utf-8
from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_argument('--user-agent=iphone')
driver = webdriver.Chrome(chrome_options=option)
driver.get('http://www.taobao.com/')
.
代码实例2:
```python
# 通过设置user-agent,用来模拟移动设备
# 比如模拟 android QQ浏览器
```python
options.add_argument('user-agent="MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"')
```python
# 模拟iPhone 6
options.add_argument('user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"')
指定selenium工具操作Chrome浏览器时下载文件的路径
代码实例1:
```python
option = webdriver.ChromeOptions()
```python
# 设定下载文件的保存目录为D盘的D:\downloadFile
prefs = {"download.default_directory":"D:\download"}
# 将自定义设置添加到chrome配置对象实例中
```python
option.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(options=option, executable_path=CHROME_DRIVER_PATH)
driver.maximize_window()
代码实例2:
```python
```python
# coding=utf-8
from selenium import webdriver
driver_path = (r'xx/chromedriver.exe') # 驱动位置
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': '默认下载路径'} # 设置下载文件存放路径,这里要写绝对路径
options = webdriver.ChromeOptions()
options.add_experimental_option('prefs', prefs)
options.add_argument('headless') # 浏览器隐式启动
driver = webdriver.Chrome(executable_path=driver_path, options=options)
设置selenium工具操作Chrome浏览器时的默认编码方式
```python
```python
# 设置默认编码为 utf-8,也就是中文
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('lang=zh_CN.UTF-8')
driver = webdriver.Chrome(chrome_options = options)
设置selenium工具操作Chrome浏览器---禁止图片加载(一般用于爬虫,加快访问速度)(不加载图片的情况下,可以提升爬取速度)
```python
```python
# 禁止图片的加载
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)
```python
```python
# 启动浏览器,并设置好wait
browser = webdriver.Chrome(chrome_options=chrome_options)
设置不弹出自动化提示
代码如下:
```python
```python
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('disable-infobars')
driver = webdriver.Chrome(chrome_options = chrome_options)
selenium工具启动Chrome浏览器时配置选项详解_加载_02
设置selenium操作Chrome浏览器后台运行
```python
```python
option = webdriver.ChromeOptions()
option.add_argument('headless')
Chrome浏览器设置开发者模式
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
self.browser = webdriver.Chrome(executable_path=chromedriver_path, options=options)
其他配置
登录后复制
```python
```python
options.add_argument('--disable-infobars') # 禁止策略化
options.add_argument('--no-sandbox') # 解决DevToolsActivePort文件不存在的报错
options.add_argument('window-size=1920x3000') # 指定浏览器分辨率
options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug
options.add_argument('--incognito') # 隐身模式(无痕模式)
options.add_argument('--disable-javascript') # 禁用javascript
options.add_argument('--start-maximized') # 最大化运行(全屏窗口),不设置,取元素会报错
options.add_argument('--disable-infobars') # 禁用浏览器正在被自动化程序控制的提示
options.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面
options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度
options.add_argument('--headless') # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" # 手动指定使用的浏览器位置