目录
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()