首页 > 其他分享 >ChromeOptions 参数介绍

ChromeOptions 参数介绍

时间:2024-03-06 18:35:02浏览次数:19  
标签:浏览器 chrome argument 介绍 ChromeOptions add 参数 -- prefs

在使用 selenium 浏览器渲染技术,爬取网站信息时,默认情况下就是一个普通的纯净的chrome浏览器,而我们平时在使用浏览器时,经常就添加一些插件,扩展,代理之类的应用。相对应的,当我们用chrome浏览器爬取网站时,可能需要对这个chrome做一些特殊的配置,以满足爬虫的行为。

1. chromeOptions 介绍
chromeOptions 是一个配置 chrome 启动是属性的类,通过这个类,我们可以为chrome配置如下参数(这个部分可以通过selenium源码看到):

设置 chrome 二进制文件位置 (binary_location)
添加启动参数 (add_argument)
添加扩展应用 (add_extension, add_encoded_extension)
添加实验性质的设置参数 (add_experimental_option)
设置调试器地址 (debugger_address)

2. 使用

try:
    # 创建谷歌浏览器驱动参数对象
    chrome_options = webdriver.ChromeOptions()
    # 不加载图片
    prefs = {"profile.managed_default_content_settings.images": 2}
    chrome_options.add_experimental_option("prefs", prefs)
    # 使用headless无界面浏览器模式
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    # chrome_options.binary_location = r'...\chrome.exe'
 
    # 加载谷歌浏览器驱动
    driver = webdriver.Chrome(r'...\chromedriver.exe')
 
    # 请求地址
    driver.get('https://item.jd.com/100038004369.html')
    wait = WebDriverWait(driver,10)    # 等待10秒
    # 等待页面加载class名称为m-item-inner的节点,该节点中包含商品信息
    wait.until(EC.presence_of_element_located((By.CLASS_NAME,"w")))
 
    # 退出浏览器驱动
    driver.quit()
 
except Exception as e:
    print(e)

3. 参数介绍

参数 含义
.add_argument('--disable-infobars')  禁止策略化
.add_argument('--no-sandbox')  解决DevToolsActivePort文件不存在的报错
.add_argument('window-size=1920x3000')  指定浏览器分辨率
.add_argument('--disable-gpu')  谷歌禁用GPU加速
.add_argument('--disable-javascript')  禁用javascript
.add_argument('--incognito')  隐身模式(无痕模式)
.add_argument('--start-maximized')  最大化运行(全屏窗口),不设置,取元素会报错
.add_argument('--hide-scrollbars')  隐藏滚动条, 应对一些特殊页面
.add_argument('blink-settings=imagesEnabled=false')  不加载图片, 提升速度
.add_argument('--headless')  浏览器不提供可视化页面(无头模式). linux下如果系统不支持可视化不加这条会启动失败
.add_argument('disable-infobars')  去掉Chrome提示受到自动软件控制
.add_argument('lang=en_US')  设置语言
.add_argument('User-Agent=xxxxxx')  设置User-Agent属性
.add_argument('--kiosk-printing')  默认打印机进行打印
.binary_location = r"...\chrome.exe"  手动指定使用的浏览器位置
.add_experimental_option("debuggerAddress", "127.0.0.1:9222")  调用原来的浏览器,不用再次登录即可重启

prefs = {"":""}

prefs["credentials_enable_service"] = False

prefs["profile.password_manager_enabled"] = False

.add_experimental_option("prefs", prefs)

设置prefs属性,屏蔽'保存密码'提示框
.add_experimental_option('excludeSwitches', ['enable-automation'])  以开发者模式启动调试chrome,可以去掉提示受到自动软件控制
.add_experimental_option('useAutomationExtension', False)  去掉提示以开发者模式调用

 

————————————————

注:本文为转载文章。
原文链接:https://blog.csdn.net/weixin_44259720/article/details/127095705

 

标签:浏览器,chrome,argument,介绍,ChromeOptions,add,参数,--,prefs
From: https://www.cnblogs.com/lymlike/p/18057276

相关文章

  • HTML开发工具和环境介绍,内附超详细的VS code安装教程!
    工欲善其事必先利其器,一款好的开发工具可以让我们事半功倍。前面我们对HTML的相关概念和基本结构已经有了基本的了解,下面我们就来安装在前端开发中的需要使用的开发工具及环境。在众多HTML编辑器中,选择一个适合自己的工具至关重要。今天我们就来认识一下前端开发工作中使用的最广......
  • js 时间数组如何url传参 和接收参数
    在JavaScript中,如果你想通过URL传递一个时间数组,你需要先将数组转换成字符串格式,因为URL参数只能传输字符串。有多种方式可以实现这个转换,例如使用JSON.stringify()将数组转换成JSON字符串。下面是一个示例,展示了如何将时间数组转换成URL参数,并在另一个页面接收这些参数:发送时间......
  • 实战3-cookie参数acw_sc_v2
    目标网站aHR0cHM6Ly93d3cubHlkaC5jb20vaml0dWFuLw==1.分析网站在网站中看到两个请求,我们想要的数据在第二个请求中分析第二个请求,发现在第二个请求中需要携带两个cookie值分别是acw_tc和acw_sc__v2往上看第一个请求,在第一个请求中发现,服务器会返回cookie值中的acw_tc2.......
  • 介绍一个很不错的 php 加密工具 - XLoad 扩展加密工具
    对于PHP开发者来说,代码安全变得越来越重要,选择一个可靠的加密工具是保护代码完全的关键。今天,我要向大家介绍一款非常出色的PHP加密工具-XLoad扩展加密工具。XLoad扩展加密工具是一款强大、安全、而易用的加密软件,它为PHP开发者提供了高效、安全的加密解决方案。这款工......
  • 记录一次WPF命令参数报错,InvalidCastException: T for DelegateCommand<T> is not an
    在使用WPF的时候对int或者bool类型进行绑定出现InvalidCastException:TforDelegateCommandisnotanobjectnorNullable.<ButtonWidth="200"Height="30"Content="按钮"Command="{BindingOpenCommand}"CommandParameter="{Binding......
  • locks包下面类介绍
    locks包的描述https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/package-summary.htmlLock接口https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html简介:通过加锁/释放锁可以实现类似于synchronized关键词实现的互斥和同步访问......
  • Java 中Stream接口介绍
    Java流操作Stream接口Stream接口的继承关系:BaseStream=......
  • 自我介绍+软工五问
    作业要求这个作业属于哪个课程软件工程2024这个作业要求在哪里自我介绍+软工5间这个作业的目标1.注册github与博客园账号,记录自己的学习过程。2.学习用markdown文档高效做笔记。3提出五个关于软件工程的问题思考自己想收获什么。自我介绍我是唐育健,是软件工......
  • 自我介绍+软工5问
    |这个作业属于哪个课程|软件工程||-----------------|---------------||这个作业要求在哪里|https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13135||这个作业的目标|介绍自己,比如兴趣爱好,学习或者生活经历;熟悉Markdown排版使用;通过问问题......
  • Java 8 Supplier函数式接口介绍及代码样例
    介绍供应商接口(SupplierInterface)是Java8引入的java.util.function包的一部分,用于在Java中实现函数式编程。它表示一个函数,该函数不接收任何参数,但会产生一个类型为T的值。T:表示结果的类型分配给Supplier类型对象的lambda表达式用于定义其get(),最终产生一个值。......