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实现查询IP地址所在地
Mar 29 Python
Python中最常用的操作列表的几种方法归纳
Apr 24 Python
如何将python中的List转化成dictionary
Aug 15 Python
Python编程修改MP3文件名称的方法
Apr 19 Python
Python3实现发送QQ邮件功能(附件)
Dec 23 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
python 实现在一张图中绘制一个小的子图方法
Jul 07 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
Aug 30 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
python使用gdal对shp读取,新建和更新的实例
Mar 10 Python
Python3.7安装pyaudio教程解析
Jul 24 Python
13个Pandas实用技巧,助你提高开发效率
Aug 19 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向浏览器输出内容的4个函数总结
2014/11/17 PHP
四种php中webservice实现的简单架构方法及实例
2015/02/03 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
jquery时间下拉框小例子
2013/04/15 Javascript
jQuery中:contains选择器用法实例
2014/12/30 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
JavaScript Base64 作为文件上传的实例代码解析
2017/02/14 Javascript
12个非常有用的JavaScript技巧
2017/05/17 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
Python退火算法在高次方程的应用
2018/07/26 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
python浪漫表白源码
2019/04/05 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
python对文件的操作方法汇总
2020/02/28 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
python使用smtplib模块发送邮件
2020/12/17 Python
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
社区党建工作汇报材料
2014/10/27 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
旅游项目合作意向书
2015/05/08 职场文书
如何通过一篇文章了解Python中的生成器
2022/04/02 Python