python爬虫基础08-selenium大全2/8-Chrome Webdriver启动选项
Selenium笔记(2)Chrome Webdriver启动选项
本文集链接:https://www.jianshu.com/nb/25338984
在Selenium中使用不同的Webdriver可能会有不一样的方法,有些相同的操作会得到不一样的结果,本文主要介绍的是Chrome()的使用方法。
其他Webdriver可以查阅官方文档。
Chrome WebDriver Options
简介
这是一个Chrome的参数对象,在此对象中使用add_argument()方法可以添加启动参数,添加完毕后可以在初始化Webdriver对象时将此Options对象传入,则可以实现以特定参数启动Chrome。
例子
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 实例化一个启动参数对象
chrome_options = Options()
# 添加启动参数
chrome_options.add_argument('--window-size=1366,768')
# 将参数对象传入Chrome,则启动了一个设置了窗口大小的Chrome
browser = webdriver.Chrome(chrome_options=chrome_options)
常用的启动参数
| 启动参数 | 作用 |
|---|---|
| --user-agent="" | 设置请求头的User-Agent |
| --window-size=1366,768 | 设置浏览器分辨率 |
| --headless | 无界面运行 |
| --start-maximized | 最大化运行 |
| --incognito | 隐身模式 |
| --disable-javascript | 禁用javascript |
| --disable-infobars | 禁用浏览器正在被自动化程序控制的提示 |
完整启动参数可以到此页面查看:
https://peter.sh/experiments/chromium-command-line-switches/
禁用图片加载
Chrome的禁用图片加载参数设置比较复杂,如下所示:
prefs = {
'profile.default_content_setting_values' : {
'images' : 2
}
}
options.add_experimental_option('prefs',prefs)
禁用浏览器弹窗
使用浏览器时常常会有弹窗弹出,以下选项可以禁止弹窗:
prefs = {
'profile.default_content_setting_values' : {
'notifications' : 2
}
}
options.add_experimental_option('prefs',prefs)
完整文档
class selenium.webdriver.chrome.options.Options
Bases: object
Method
__init__()
add_argument(argument)Adds an argument to the listArgs:Sets the arguments
add_encoded_extension(extension)Adds Base64 encoded string with extension data to a list that will be used to extract it to the ChromeDriverArgs:extension: Base64 encoded string with extension data
add_experimental_option(name, value)Adds an experimental option which is passed to chrome.Args:name: The experimental option name. value: The option value.
add_extension(extension)Adds the path to the extension to a list that will be used to extract it to the ChromeDriverArgs:extension: path to the *.crx file
set_headless(headless=True)Sets the headless argumentArgs:headless: boolean value indicating to set the headless option
to_capabilities()Creates a capabilities with all the options that have been set andreturns a dictionary with everything
Values
KEY= 'goog:chromeOptions'
argumentsReturns a list of arguments needed for the browser
binary_locationReturns the location of the binary otherwise an empty string
debugger_addressReturns the address of the remote devtools instance
experimental_optionsReturns a dictionary of experimental options for chrome.
extensionsReturns a list of encoded extensions that will be loaded into chrome
headlessReturns whether or not the headless argument is set
Chrome WebDriver对象
简介
这个对象继承自selenium.webdriver.remote.webdriver.WebDriver,这个类会在下一章讲到,Chrome的WebDriver作为子类增添了几个方法。
指定chromedriver.exe的位置
chromedriver.exe一般可以放在环境文件中,但是有时候为了方便部署项目,或者为了容易打包,我们可以将chromedriver.exe放到我们的项目目录中,然后在初始化Chrome Webdriver对象时,传入chromedriver.exe的路径。
如下所示:
from selenium import webdriver
browser = webdriver.Chrome(executable_path='chromedriver.exe')
完整文档
class selenium.webdriver.chrome.webdriver.WebDriver(executable_path='chromedriver', port=0, options=None, service_args=None, desired_capabilities=None, service_log_path=None, chrome_options=None)
Bases: selenium.webdriver.remote.webdriver.WebDriver
Controls the ChromeDriver and allows you to drive the browser.
You will need to download the ChromeDriver executable fromhttp://chromedriver.storage.googleapis.com/index.html
__init__(executable_path='chromedriver', port=0, options=None, service_args=None, desired_capabilities=None, service_log_path=None, chrome_options=None)Creates a new instance of the chrome driver.
Starts the service and then creates new instance of chrome driver.
Args:
executable_path - path to the executable. If the default is used it assumes the executable is in the $PATHport
port you would like the service to run, if left as 0, a free port will be found.
desired_capabilities: Dictionary object with non-browser specific capabilities only, such as “proxy” or “loggingPref”.
options: this takes an instance of ChromeOptions
create_options()
get_network_conditions()Gets Chrome network emulation settings.
Returns:A dict. For example:
{‘latency’: 4, ‘download_throughput’: 2, ‘upload_throughput’: 2, ‘offline’: False}
launch_app(id)Launches Chrome app specified by id.
quit()Closes the browser and shuts down the ChromeDriver executable that is started when starting the ChromeDriver
set_network_conditions(**network_conditions)Sets Chrome network emulation settings.
Args:
network_conditions: A dict with conditions specification.
Usage:
driver.set_network_conditions(offline=False, latency=5, # additional latency (ms)
download_throughput=500 * 1024, # maximal throughput
upload_throughput=500 * 1024) # maximal throughputNote: ‘throughput’ can be used to set both (for download and upload).
python爬虫基础08-selenium大全2/8-Chrome Webdriver启动选项的更多相关文章
- Python 爬虫的工具列表大全
Python 爬虫的工具列表大全 这个列表包含与网页抓取和数据处理的Python库.网络 通用 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pyc ...
- Python爬虫基础
前言 Python非常适合用来开发网页爬虫,理由如下: 1.抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl ...
- python爬虫动态html selenium.webdriver
python爬虫:利用selenium.webdriver获取渲染之后的页面代码! 1 首先要下载浏览器驱动: 常用的是chromedriver 和phantomjs chromedirver下载地址 ...
- python爬虫-基础入门-python爬虫突破封锁
python爬虫-基础入门-python爬虫突破封锁 >> 相关概念 >> request概念:是从客户端向服务器发出请求,包括用户提交的信息及客户端的一些信息.客户端可通过H ...
- python爬虫-基础入门-爬取整个网站《3》
python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python ...
- python爬虫-基础入门-爬取整个网站《2》
python爬虫-基础入门-爬取整个网站<2> 描述: 开场白已在<python爬虫-基础入门-爬取整个网站<1>>中描述过了,这里不在描述,只附上 python3 ...
- python爬虫-基础入门-爬取整个网站《1》
python爬虫-基础入门-爬取整个网站<1> 描述: 使用环境:python2.7.15 ,开发工具:pycharm,现爬取一个网站页面(http://www.baidu.com)所有数 ...
- Python爬虫之设置selenium webdriver等待
Python爬虫之设置selenium webdriver等待 ajax技术出现使异步加载方式呈现数据的网站越来越多,当浏览器在加载页面时,页面上的元素可能并不是同时被加载完成,这给定位元素的定位增加 ...
- PYTHON 爬虫笔记七:Selenium库基础用法
知识点一:Selenium库详解及其基本使用 什么是Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium ...
随机推荐
- Qt 2D绘图之四:绘图中的其他问题
一.重绘事件 前面讲到的所有绘制操作都是在重绘事件处理函数paintEvent()中完成的,是QWidget类中定义的函数.一个重绘事件用来重绘一个部件的全部或者部分区域,下面几个原因中的任意一个都会 ...
- eclipse导入mavn工程报Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom:2.6 的解决办法
详细报错: Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom:2.6 from http://10.74. ...
- Solr的SolrCloud与Master-slave主从模式对比
第一印象 SolrCloud是Solr4.0引入的,主要应对与商业场景.它很像master-slave,却能自动化的完成以前需要手动完成的操作.利用ZooKeeper这个工具去监控整个Solr集群,以 ...
- c#操作ecxel的一些资源(downmoon搜集)
c#操作ecxel的一些资源(downmoon搜集) 工作需要,邀月收集了几个操作excel的资源. 1.如何:使用 COM Interop 创建 Excel 电子表格(C# 编程指南)http:/ ...
- 解决“程序包管理器控制台”输入命令找不到Nuget包问题
问题: 问题原因: Nuget源的地址上不去 解决办法: 1.将Nuget源更新为可以国内使用的官方Nuget源. 1)打开VS2013:工具-->Nuget程序包管理器-->程序包管理器 ...
- 一张图告诉你,只会NodeJS还远远不够!
NodeJS看似小巧简单,却威力无边,一张图,秒懂!!! 可能很多人还不会安装,但至少已经会了javascript,或者至少会了jquery,那么js还可以干更多的事情!js还可以干更多的事情!js还 ...
- 【学习笔记】CSS优先级规则
CSS的优先级规则很多地方的说法都是错误的,常见错误说法是inline css>内部样式>外部样式,其实并没有这种规定.真正的CSS优先级确定是通过特性值大小确定的,在特性值大小相同的情况 ...
- HTML iframe框架
iframe 作用: 就是在一个网页插入一个小窗口 窗口里面也是一个网页 <a href="http://www.baidu.com" target="da1& ...
- (三)maven之一个基本的pom.xml
一个基本项目的pom.xml文件,通常会有以下三部分: 一.项目坐标,信息描述等. <modelVersion>4.0.0</modelVersion> <groupId ...
- 如何用JavaScript判断前端应用运行环境(移动平台还是桌面环境)
我们部署在某些云平台或者Web服务器上的前端应用,既可以用PC端浏览器访问,也可以用手机上的浏览器访问. 在前端应用里,有时候我们需要根据运行环境的不同做出对应处理.比如下面这段逻辑,如果判断出应用当 ...