python+selenium+Chrome options参数的使用


Posted in Python onMarch 18, 2020

Chrome Options常用的行为一般有以下几种:

  • 禁止图片和视频的加载:提升网页加载速度。
  • 添加代理:用于翻墙访问某些页面,或者应对IP访问频率限制的反爬技术。
  • 使用移动头:访问移动端的站点,一般这种站点的反爬技术比较薄弱。
  • 添加扩展:像正常使用浏览器一样的功能。
  • 设置编码:应对中文站,防止乱码。
  • 阻止JavaScript执行
  • ...

Chrome Options是一个配置chrome启动时属性的类,通过这个参数我们可以为Chrome添加如下参数:

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

针对编码格式的操作

# 设置默认编码为 utf-8
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('lang=zh_CN.UTF-8')
driver = webdriver.Chrome(chrome_options = options)

针对UA请求头的操作

# 设置请求头为huaweiMeta10 Pro
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('User-Agent=Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36')
options.add_argument('--headless') # 浏览器不提供可视化页面
driver = webdriver.Chrome(chrome_options = options)

http://www.fynas.com/ua

针对禁止加载图片的操作

# 设置浏览器禁止加载图片
from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images": 2}
options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options = options)

针对IP代理的操作

特别需要注意,在选择代理时,尽量选择静态IP,才能提升爬取的稳定性。如果使用动态匿名IP,每个IP的存活时间是很短的。

# 设置无账号密码的代理
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument('--proxy-server=http://ip:port') 
driver = webdriver.Chrome(chrome_options=chromeOptions)
# 设置有账号密码的代理
proxyauth_plugin_path = create_proxyauth_extension(
   proxy_host='host',
   proxy_port='port',
   proxy_username="username",
   proxy_password="password"
  )
options.add_extension(proxyauth_plugin_path)

查看IP地址的链接:http://httpbin.org/ip

针对添加插件的操作

# 添加xpath helper应用

from selenium import webdriver
chrome_options = webdriver.ChromeOptions()

# 设置好应用扩展
extension_path = 'your file_path'
chrome_options.add_extension(extension_path)

针对登录时关闭弹出的密码保存提示框

from selenium import webdriver 
from selenium.webdriver.common.by import By
options = webdriver.ChromeOptions() 
prefs = {} 
# 设置这两个参数就可以避免密码提示框的弹出
prefs[“credentials_enable_service”] = False 
prefs[“profile.password_manager_enabled”] = False 
options.add_experimental_option(“prefs”, prefs) 
browser = webdriver.Chrome(chrome_options=options) 
browser.get('https://www.baidu.com/')
browser.quit()

其它配置

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" # 手动指定使用的浏览器位置

更多插件操作请参考:https://3water.com/article/182967.htm

到此这篇关于python+selenium+Chrome options参数的使用的文章就介绍到这了,更多相关selenium Chrome options参数 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python访问类中docstring注释的实现方法
May 04 Python
python使用range函数计算一组数和的方法
May 07 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
Sep 11 Python
用Python写脚本,实现完全备份和增量备份的示例
Apr 29 Python
使用Python抓取豆瓣影评数据的方法
Oct 17 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
Feb 22 Python
python实现递归查找某个路径下所有文件中的中文字符
Aug 31 Python
Python程序控制语句用法实例分析
Jan 14 Python
Python telnet登陆功能实现代码
Apr 16 Python
浅析Python中字符串的intern机制
Oct 03 Python
浅谈pytorch中的dropout的概率p
May 27 Python
Python matplotlib可视化之绘制韦恩图
Feb 24 Python
selenium WebDriverWait类等待机制的实现
Mar 18 #Python
Python socket处理client连接过程解析
Mar 18 #Python
python selenium自动化测试框架搭建的方法步骤
Jun 14 #Python
Python如何使用paramiko模块连接linux
Mar 18 #Python
Python selenium页面加载慢超时的解决方案
Mar 18 #Python
Python Selenium 设置元素等待的三种方式
Mar 18 #Python
Python多线程threading join和守护线程setDeamon原理详解
Mar 18 #Python
You might like
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
Vue实现简单分页器
2018/12/29 Javascript
微信打开网址添加在浏览器中打开提示的办法
2019/05/20 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
使用Python解析JSON数据的基本方法
2015/10/15 Python
Python3 Random模块代码详解
2017/12/04 Python
python 文件转成16进制数组的实例
2018/07/09 Python
python selenium 弹出框处理的实现
2019/02/26 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
护理专业毕业生推荐信
2013/10/31 职场文书
财务科科长岗位职责
2014/03/10 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python
详解Go与PHP的语法对比
2021/05/29 PHP
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python
SQL Server 中的事务介绍
2022/05/20 SQL Server