0


python selenium 设置浏览器参数详解

来源:1、《精通python自动化编程-黄永祥 第16章 16.6 Selenium常用功能 》

2、https://blog.csdn.net/weixin_41624982/article/details/88904262

3、https://blog.csdn.net/duzilonglove/article/details/78517429

4、https://blog.csdn.net/qq_42082278/article/details/107717986

1、《精通python自动化编程-黄永祥 第16章 16.6 Selenium常用功能 》

浏览器参数chrome_options的设置

参数是在定义driver的时候设置,是一个Options类所实例化的对象。参数是设置浏览器是否可视化(加快代码运行速度)和浏览器的请求头(防止网站的反爬虫检测)等信息。

execute_script方法:通过浏览器JavaScript代码生成新的窗口,然后获取浏览器上的全部窗口信息。

window_handles方法:获取当前浏览器的窗口信息,并以列表形式表示。

switch_to_window方法:实现窗口之间的切换。

隐性等待:对整个周期都起作用,所以设置一次就好。

显性等待:每隔一段时间就检测一次,相符就下一步,否则超出最长时间就抛出异常。driver表示浏览器对象driver。timeout表示超过时间,等待的最长时间。poll_frequency=0.5表示检测时间的间隔。ignored_exceptions表示忽略的异常。until表示条件判断。

代码:

from selenium import webdriver
# 导入Options类
from selenium.webdriver.chrome.options import Options

url = 'https://www.baidu.com/'
# Options类实例化
chrome_options = Options()
# 设置浏览器参数
# --headless是不显示浏览器启动及执行过程
chrome_options.add_argument('--headless')
# 启动时设置默认语言为中文 UTF-8
# 设置lang和User-Agent信息,防止反爬虫检测
chrome_options.add_argument('lang=zh_CN.utf-8')
#user-agent用来模拟移动设备
UserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
chrome_options.add_argument('User-Agent=' + UserAgent)
# 启动浏览器并设置chrome_options参数
driver = webdriver.Chrome(chrome_options=chrome_options)
# 浏览器窗口最大化
driver.maximize_window()
# 浏览器窗口最小化
driver.minimize_window()
driver.get(url)
# 获取网页的标题内容
print(driver.title)
# page_source用于获取网页的Html代码
print(driver.page_source)
from selenium import webdriver
import time

url = 'https://www.baidu.com/'
driver = webdriver.Chrome()
driver.get(url)
# 使用JavaScript开启新的窗口
js = 'window.open("https://www.google.com.hk/");'
driver.execute_script(js)
# 获取当前显示的窗口信息
current_window = driver.current_window_handle
# 获取浏览器的全部窗口信息
handles = driver.window_handles
# 设置延时以看到切换效果
time.sleep(3)
# 根据窗口信息进行窗口切换
# 切换百度搜索的窗口
driver.switch_to_window(handles[0])
time.sleep(3)
# 切换搜狗搜索的窗口
driver.switch_to_window(handles[1])
from selenium import webdriver
url = 'https://www.baidu.com/'
driver=webdriver.Chrome()
driver.get(url)
#隐性等待,最长等待时间为30秒
driver.implicitly_wait(30)
driver.find_element_by_id('kw').send_keys('Python')
#显性等待
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
# expected_conditions检查网页元素是否可见
condition=expected_conditions.visibility_of_element_located((By.ID,'kw'))
WebDriverWait(driver=driver,timeout=20,poll_frequency=0.5).until(condition)

2、https://blog.csdn.net/weixin_41624982/article/details/88904262

#https://blog.csdn.net/duzilonglove/article/details/78517429

#添加扩展应用
from selenium import webdriver
options = webdriver.ChromeOptions()
extension_path = '/extension/path'
options.add_extension(extension_path)
driver = webdriver.Chrome(chrome_options = options)

# 禁止图片加载
from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {
    'profile.default_content_setting_values' : {
        'images' : 2
    }
}
options.add_experimental_option('prefs',prefs)
driver = webdriver.Chrome(chrome_options = options)
driver.get("http://www.baidu.com/")

#selenium 隐藏被浏览器被自动化工具控制横幅
from selenium import webdriver
 
option = webdriver.ChromeOptions()
 
option.add_experimental_option('useAutomationExtension', False)
option.add_experimental_option('excludeSwitches', ['enable-automation'])
 
# 打开chrome浏览器
driver = webdriver.Chrome(options=option)
driver.get("https://www.baidu.com.cn")
print(driver.title)

#添加扩展应用

from selenium import webdriver
options = webdriver.ChromeOptions()
extension_path = '/extension/path'
options.add_extension(extension_path)
driver = webdriver.Chrome(chrome_options = options)

#附赠添加代理方法

from selenium import webdriver
PROXY = "proxy_host:proxy:port"
options = webdriver.ChromeOptions()
desired_capabilities = options.to_capabilities()
desired_capabilities['proxy'] = {
    "httpProxy":PROXY,
    "ftpProxy":PROXY,
    "sslProxy":PROXY,
    "noProxy":None,
    "proxyType":"MANUAL",
    "class":"org.openqa.selenium.Proxy",
    "autodetect":False
}
driver = webdriver.Chrome(desired_capabilities = desired_capabilities)

#指定driver地址

from selenium import webdriver
 
driver = webdriver.Chrome(executable_path='..drivers\chromedriver.exe')
#这个地方的executable_path,可以是一个相对路径或一个绝对路径

3、https://blog.csdn.net/duzilonglove/article/details/78517429

chromeoptions 是一个方便控制 chrome 启动时属性的类。

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

来源:https://blog.csdn.net/weixin_41624982/article/details/88904262
#selenium启动Chrome配置参数问题

#selenium启动配置参数接收是ChromeOptions类,创建方式如下:

from selenium import webdriver
option = webdriver.ChromeOptions()
 

#创建了ChromeOptions类之后就是添加参数,添加参数有几个特定的方法,分别对应添加不同类型的配置项目。

#设置 chrome 二进制文件位置 (binary_location)
from selenium import webdriver
option = webdriver.ChromeOptions()
 
# 添加启动参数
option.add_argument()
 
# 添加扩展应用 
option.add_extension()
option.add_encoded_extension()
 
# 添加实验性质的设置参数 
option.add_experimental_option()
 
# 设置调试器地址
option.debugger_address()
 

#常用配置参数:
from selenium import webdriver
option = webdriver.ChromeOptions()
 
# 添加UA
options.add_argument('user-agent="MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"')
 
# 指定浏览器分辨率
options.add_argument('window-size=1920x3000') 
 
# 谷歌文档提到需要加上这个属性来规避bug
chrome_options.add_argument('--disable-gpu') 
 
 # 隐藏滚动条, 应对一些特殊页面
options.add_argument('--hide-scrollbars')
 
# 不加载图片, 提升速度
options.add_argument('blink-settings=imagesEnabled=false') 
 
# 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
options.add_argument('--headless') 
 
# 以最高权限运行
options.add_argument('--no-sandbox')
 
# 手动指定使用的浏览器位置
options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" 
 
#添加crx插件
option.add_extension('d:\crx\AdBlock_v2.17.crx') 
 
# 禁用JavaScript
option.add_argument("--disable-javascript") 
 
# 设置开发者模式启动,该模式下webdriver属性为正常值
options.add_experimental_option('excludeSwitches', ['enable-automation']) 
 
# 禁用浏览器弹窗
prefs = {  
    'profile.default_content_setting_values' :  {  
        'notifications' : 2  
     }  
}  
options.add_experimental_option('prefs',prefs)
 
driver=webdriver.Chrome(chrome_options=chrome_options)
 

#浏览器地址栏参数:

#在浏览器地址栏输入下列命令得到相应的信息
    about:version - 显示当前版本
 
  about:memory - 显示本机浏览器内存使用状况
 
  about:plugins - 显示已安装插件
 
  about:histograms - 显示历史记录
 
  about:dns - 显示DNS状态
 
  about:cache - 显示缓存页面
 
  about:gpu -是否有硬件加速
 
  chrome://extensions/ - 查看已经安装的扩展
 
#image

#其他配置项目参数

–user-data-dir=”[PATH]” 
# 指定用户文件夹User Data路径,可以把书签这样的用户数据保存在系统分区以外的分区
 
  –disk-cache-dir=”[PATH]“ 
# 指定缓存Cache路径
 
  –disk-cache-size= 
# 指定Cache大小,单位Byte
 
  –first run 
# 重置到初始状态,第一次运行
 
  –incognito 
# 隐身模式启动
 
  –disable-javascript 
# 禁用Javascript
 
  --omnibox-popup-count="num" 
# 将地址栏弹出的提示菜单数量改为num个
 
  --user-agent="xxxxxxxx" 
# 修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果
 
  --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代理 [via 1/2]
 
  --lang=zh-CN 
# 设置语言为简体中文
 
  --disk-cache-dir 
# 自定义缓存目录
 
  --disk-cache-size 
# 自定义缓存最大值(单位byte)
 
  --media-cache-size 
# 自定义多媒体缓存最大值(单位byte)
 
  --bookmark-menu 
# 在工具 栏增加一个书签按钮
 
  --enable-sync 
# 启用书签同步

4、https://blog.csdn.net/qq_42082278/article/details/107717986

# chrome_options.add_argument('--headless')  # 无头
# chrome_options.add_argument('--disable-gpu')  # 不加载gpu,规避bug
# chrome_options.add_argument('proxy-server=http://111.11.11.11:1234')  # proxy
chrome_options.add_argument('--incognito') # 无痕模式
chrome_options.add_argument('--disable-infobars') # 不显示 chrome正受到自动测试软件的控制。
chrome_options.add_argument('--no-sandbox')  # 解决DevToolsActivePort文件不存在的报错
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])# 模拟真正浏览器
options.add_argument("--proxy-server=http://" + ip_port)  代理

其他可收藏内容:https://qcsdn.com/article/76095.html

标签:

本文转载自: https://blog.csdn.net/weixin_44740756/article/details/119798030
版权归原作者 小炫y 所有, 如有侵权,请联系我们删除。

“python selenium 设置浏览器参数详解”的评论:

还没有评论