pythonselenium设置_Python3+Selenium 配置Chrome选项

本文介绍如何使用Selenium和ChromeOptions配置Chrome浏览器以实现特定功能,如模拟移动设备、禁止图片加载、添加代理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境

python:3.6.2

系统:win10

IDE:pycharm

browser:chrome

chromedriver:73.0.3683.68

selenium 3.141.0

chromeOptions相关配置

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

1.设置 chrome 二进制文件位置 (binary_location)

2.添加启动参数 (add_argument)

3.添加扩展应用 (add_extension, add_encoded_extension)

4.添加实验性质的设置参数 (add_experimental_option)

5.设置调试器地址 (debugger_address)

模拟移动设备

#通过设置user-agent,用来模拟移动设备

user_ag='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('user-agent=%s'%user_ag)#option.add_argument('--user-agent=iphone')

禁止图片加载

#暂未测试

from selenium.webdriver.support.ui importWebDriverWaitfrom selenium.webdriver.chrome.webdriver importOptionsfrom selenium.webdriver.chrome.webdriver importWebDriver

chrome_option=Options()

prefs= {"profile.managed_default_content_settings.images": 2}

chrome_option .add_experimental_option("prefs", prefs)

driver= WebDriver(options=chrome_option)

chrome_wait= WebDriverWait(driver, 10)#或者使用下面的设置, 提升速度

chrome_option .add_argument('blink-settings=imagesEnabled=false')

添加代理

#暂未测试

from selenium.webdriver.support.ui importWebDriverWaitfrom selenium.webdriver.chrome.webdriver importOptionsfrom selenium.webdriver.chrome.webdriver importWebDriver#静态IP:102.23.1.105:2005

PROXY= "proxy_host:proxy:port"chrome_option=Options()

desired_capabilities=chrome_option.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= WebDriver(options=chrome_option)

chrome_wait= WebDriverWait(driver, 10)

浏览器启动时安装crx扩展

# 暂未测试

from selenium.webdriver.support.ui importWebDriverWaitfrom selenium.webdriver.chrome.webdriver importOptionsfrom selenium.webdriver.chrome.webdriver importWebDriver

chrome_option=Options()

chrome_option .add_extension('D:\\crx\\AdBlock_v2.17.crx') #自己下载的crx路径

driver= WebDriver(options=chrome_option)

chrome_wait= WebDriverWait(driver, 10)

driver.get(url)

加载所有Chrome配置

用Chrome地址栏输入chrome://version/,查看自己的“个人资料路径”,然后在浏览器启动时,调用这个配置文件,代码如下:

#暂未测试

from selenium.webdriver.chrome.webdriver importOptionsfrom selenium.webdriver.chrome.webdriver importWebDriver

chrome_option=Options()

p=r'C:\Users\Administrator\AppData\Local\Google\Chrome\User Data'option.add_argument('--user-data-dir='+p) #设置成用户自己的数据目录

driver= WebDriver(options=chrome_option)

携带Cookie

chrome_options =Options()

chrome_options.add_argument("user-data-dir=selenium")

driver= webdriver.Chrome(chrome_options=chrome_options)

driver.get("http://www.baidu.com")

通过使用Chrome选项保持所有登录在会话之间持久user-data-dir

其他

from selenium.webdriver.chrome.webdriver importOptions

options=Options()#谷歌无头模式

options.add_argument('--headless')

options.add_argument('--disable-gpu') #谷歌文档提到需要加上这个属性来规避bug

options.add_argument('disable-infobars') #隐藏"Chrome正在受到自动软件的控制"

options.add_argument('lang=zh_CN.UTF-8') #设置中文

options.add_argument('window-size=1920x3000') #指定浏览器分辨率

options.add_argument('--hide-scrollbars') #隐藏滚动条, 应对一些特殊页面

options.add_argument('--remote-debugging-port=9222')

options.binary_location= r'/Applications/Chrome' #手动指定使用的浏览器位置

#更换头部

user_agent =("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4)" +

"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36")

options.add_argument('user-agent=%s'%user_agent)#设置图片不加载

prefs ={'profile.default_content_setting_values': {'images': 2}

}

options.add_experimental_option('prefs', prefs)#或者 使用下面的设置, 提升速度

options.add_argument('blink-settings=imagesEnabled=false')#设置代理

options.add_argument('proxy-server=' +'192.168.0.28:808')

driver= webdriver.Chrome(chrome_options=options)#设置 cookie

driver.delete_all_cookies()#删除所有的cookie

driver.add_cookie({'name':'ABC','value':'DEF'})#携带cookie打开

driver.get_cookies()#通过 js 新打开一个窗口

driver.execute_script( "window.open("https://www.baidu.com");")#通过 js 移动到最下

time.sleep(3) #等待 页面加载/Ajax数据返回

driver.execute_script( "var q=document.documentElement.scrollTop=10000")#通过 js 返回所有html

driver.execute_script( "return document.documentElement.outerHTML" )

chrome地址栏命令

about:version -显示当前版本

about:memory-显示本机浏览器内存使用状况

about:plugins-显示已安装插件

about:histograms-显示历史记录

about:dns-显示DNS状态

about:cache-显示缓存页面

about:gpu- 是否有硬件加速

about:flags- 开启一些插件 //使用后弹出这么些东西:“请小心,这些实验可能有风险”,看不懂也懒得改。

chrome://extensions/ - 查看已经安装的扩展

chrome实用参数

–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个。我都改为15个了。

–user-agent="xxxxxxx" - 修改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 - 启用书签同步

–single-process - 单进程运行 Google Chrome

博客搬运地址:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值