python+Selenium——web自动化(chrome常用配置及参数和方法)

本文详细介绍了如何使用 ChromeOptions 类在 Selenium 中配置 Chrome 浏览器,包括设置扩展、禁用弹窗、代理、管理 cookies 以及各种实用参数。此外,还展示了如何进行浏览器的仿真设置,如模拟移动设备。这些技巧对于自动化测试和网页爬虫的开发至关重要。
摘要由CSDN通过智能技术生成

目录

chromeOptions常用配置和常用方法

chrome地址栏命令

浏览器选项设置

chromeOptions 属性类

常用操作

添加扩展应用

禁止弹出密码提示框

禁用浏览器弹窗

禁止图片加载

设置代理

添加多个cookie

关于Chrome的实用参数

常用参数


chromeOptions常用配置和常用方法

chrome地址栏命令

about:version - 显示当前版本

about:memory - 显示本机浏览器内存使用状况

about:plugins - 显示已安装插件

about:histograms - 显示历史记录

about:dns - 显示DNS状态

about:cache - 显示缓存页面

about:gpu -是否有硬件加速

chrome://extensions/ - 查看已经安装的扩展

浏览器选项设置

selenium一般打开的是不带扩展的纯净的浏览器,有时候想对浏览器进行一些设置,如清除cookies,清除缓存等时,可以在selenium爬虫启动时,先自动化处理,新开一个窗口,在地址栏键入:chrome://settings/content 或 chrome://settings/privacy,然后由设置的程序自动进行设置和保存。

chromeOptions 属性类

chromeOptions 是配置 chrome 启动的属性类,通过这个类可以为chrome配置如下参数:

设置 chrome 二进制文件位置 :binary_location

添加启动参数 :add_argument

添加扩展应用 :add_extension或 add_encoded_extension

添加实验性质的设置参数 :add_experimental_option

设置调试器地址 :debugger_address

常用操作

添加扩展应用

extension_path = '扩展程序路径'
chrome_options.add_extension(extension_path)

禁止弹出密码提示框

prefs = {} 
prefs["credentials_enable_service"] = False 
prefs["profile.password_manager_enabled"] = False 
chrome_options.add_experimental_option("prefs",prefs) 

禁用浏览器弹窗

pref = {
     'profile.default_content_setting_values': {
           'notifications': 2
        }
    }
chrome_options.add_experimental_option('prefs', pref)

禁止图片加载

方法一:

prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)

方法二:

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

设置代理

方法一:

PROXY = "23.23.23.23:3128" # IP:PORT or HOST:PORT
chrome_options.add_argument('--proxy-server=%s' % PROXY)

方法二:

from selenium import webdriver

driver = webdriver.ChromeOptions()
wd = driver.to_capabilities()
wd['proxy']={
    "httpProxy": "xxx",
    "ftpProxy":"xxx",
    "sslProxy": "xxx",
    "noProxy": None,
    "proxyType": "MANUAL",
    "class": "org.openqa.selenium.Proxy",
    "autodetect": False
}
driver = webdriver.Chrome(desired_capabilities = wd)

添加多个cookie

for cookie in cookies:
    driver.add_cookie(cookie)

关于Chrome的实用参数

--disable-plugins 禁止加载所有插件以增加速度,可通过about:plugins页面查看效果
--disable-javascript 禁用JavaScript,提升加载速度
--disable-java 禁用java
--start-maximized 启动就最大化
--no-sandbox 取消沙盒模式
--single-process 单进程运行
--process-per-tab 每个标签使用单独进程
--process-per-site 每个站点使用单独进程
--in-process-plugins 插件不启用单独进程
--disable-popup-blocking 禁用弹出拦截
--disable-plugins 禁用插件
--disable-images 禁用图像
--incognito 启动进入隐身模式
--enable-udd-profiles 启用账户切换菜单
--proxy-pac-url 使用pac代理
--lang=zh-CN 设置语言为简体中文
--disk-cache-dir 自定义缓存目录
--disk-cache-size 自定义缓存最大值(单位byte)
--media-cache-size 自定义多媒体缓存最大值(单位byte)
--bookmark-menu 在工具 栏增加一个书签按钮
--enable-sync 启用书签同步

常用参数

浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败:chrome_options.add_argument('--headless')
浏览器窗口最大化:chrome_options.add_argument('--start-maximized')
设置开发者模式启动,该模式下webdriver属性为正常值:chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
全屏模式:chrome_options.add_argument('--kiosk')
无痕迹模式:chrome_options.add_argument('incognito')
不加载图片, 提升爬取速度:chrome_options.add_argument('blink-settings=imagesEnabled=false')
谷歌文档提到需要加上这个属性来规避bug:chrome_options.add_argument('--disable-gpu')
指定浏览器分辨率:chrome_options.add_argument('window-size=1920x3000')
隐藏滚动条, 应对一些特殊页面:chrome_options.add_argument('--hide-scrollbars')
以最高权限运行:chrome_options.add_argument('--no-sandbox')
手动指定使用的浏览器位置:chrome_options.binary_location = r"浏览器绝对路径\chrome.exe"
添加crx插件:chrome_options.add_extension('d:\crx\AdBlock_v2.17.crx')
禁用JavaScript:chrome_options.add_argument("--disable-javascript")
设置编码格式:chrome_options.add_argument('lang=zh_CN.UTF-8')

浏览器仿真H5 

from selenium import webdriver

mobile_emulation = {"deviceMetrics": {"width": 360, "height": 640, "pixelRatio": 3.0},
                    "userAgent": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19"}

option = webdriver.ChromeOptions()
option.add_experimental_option("mobileEmulation", mobile_emulation)    # 手机模式
option.add_experimental_option('excludeSwitches', ['enable-automation'])   # 开发者模式
wd = webdriver.Chrome(options=option)
wd.maximize_window()
wd.get('http://www.baidu.com')
wd.quit()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值