Update avaliable. Click RELOAD to update.
目录

由浅入深 python selenium 的使用

1. 使用前提

1.1. 依赖库的安装

pip3 install selenium # selenium 目前使用4.x.x的版本

1.2. 驱动执行文件

打开 Chrome 浏览器,输入 chrome://version 查看 Chromium 版本号,如:Chromium: 112.0.5615.138,再去 chrome driver 找到对应版本的驱动程序,下载保存。

这里浏览器不局限于 Google Chrome,只要是任何 Chromium 内核构建的都可以,作者使用的是 brave 浏览器

2. 使用方式

2.1. 快速开始

下面的程序作用是自动打开浏览器进入百度搜索,输入关键字后点击搜索按钮,完成自动执行,浏览器不关闭。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By

# 浏览器程序与驱动路径
BROWSER_LOCATION = 'C:\Program Files\Google\Chrome\Application\chrome.exe'
DRIVER_LOCATION = 'D:\SeleniumDriver\chromedriver.exe'

# 初始化
options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)
options.add_argument('--ignore-certificate-errors')
options.binary_location = BROWSER_LOCATION
driver = webdriver.Chrome(service=Service(executable_path=DRIVER_LOCATION), options=options)

# 打开网址
driver.get('https://www.baidu.com')
driver.maximize_window()

# 解释 javascript 脚本
# driver.execute_script('window.location.href="https://www.google.com"')

search_box = driver.find_element(By.NAME, 'wd')
search_box.send_keys('chatgpt使用')
search_button = driver.find_element(By.ID, 'su')
search_button.click()

# 关闭浏览器
driver.quit()

2.2. 浏览器参数

options = webdriver.ChromeOptions()

# 设置useragent
options.add_argument('--user-agent=user_agent')

# 忽略浏览器证书错误
options.add_argument("--ignore-certificate-errors")

# 无界面模式,对于自动化测试和爬虫等任务非常有用,可提高运行效率,并减少资源消耗,因为不需要渲染和显示页面
options.add_argument('--headless')

# 开发者模式
options.add_argument("--auto-open-devtools-for-tabs") 

# 设置代理
options.add_argument('--proxy-server=http://ip:port')

# 浏览器的命令开关选项
# enable-logging,在启动时不要启用日志记录功能,这可以减少浏览器在控制台输出日志的数量
options.add_experimental_option('excludeSwitches', ['enable-logging'])

 # 手机模式
options.add_experimental_option("mobileEmulation", {"deviceName": "iPhone 12 Pro"})

更多的选项参看,https://peter.sh/experiments/chromium-command-line-switches/#disable-touch-drag-drop

版权所有,本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。转载请注明出处:https://www.wangjun.dev//2023/05/python-selenium/