一、安装
workon xxxx
pip install selenium
二、安装驱动
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --versionGoogle Chrome 138.0.7204.93
sudo mv ~/Downloads/chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
chromedriver --version
ChromeDriver 138.0.7204.49 (d2b48fd5f7813ed477a2d68fa232b8178fa4fb1e-refs/branch-heads/7204@{#1814})
三、打开使用,第一次打开加载很久
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
title = driver.title
print(driver.title)driver.quit()
四、优化加载,提高打开速度
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsoptions = Options()
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--disable-extensions")
options.add_argument("--disable-gpu")
options.add_argument("--window-size=1920,1080")
options.add_argument("--user-data-dir=/tmp/chrome-test-profile")
driver = webdriver.Chrome(options=options)
五、获取页面请求数据
- 通过 Chrome DevTools 捕获网络请求(仅限 Chrome/Edge)
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--enable-logging")
chrome_options.add_argument("--log-level=0")
chrome_options.set_capability("goog:loggingPrefs", {"performance": "ALL"})driver = webdriver.Chrome(options=chrome_options)
driver.execute_cdp_cmd("Network.enable", {})
driver.get("https://example.com")
logs = driver.get_log("performance")
for log in logs:print(log)
for log in logs:message = log.get("message", '{}')message = json.loads(message)['message']method = messgae['method']params = messgae['params']if "Network.requestWillBeSent" in message:print("Request URL:", message.get("params", {}).get("request", {}).get("url"))elif "Network.responseReceived" in message:print("Status Code:", message.get("params", {}).get("response", {}).get("status"))
driver.quit()
六、常用命令
driver.forward()
driver.back()
driver.refresh()
current_url = driver.current_url
title = driver.title
source = driver.page_source
driver.close()
driver.quit()
upload_element = driver.find_element(By.XPATH, "//input[@type='file']")
upload_element.send_keys("/path/to/file.txt")
driver.get("https://image.baidu.com/")
driver.find_element(By.XPATH, '//*[@id="sttb"]/img[1]').click()
driver.find_element(By.ID, "stfile").send_keys("/path/to/image.png")
current_window = driver.current_window_handle
all_windows = driver.window_handles
for window in all_windows:if window != current_window:driver.switch_to.window(window)
driver.execute_script("window.open('');")
driver.switch_to.window(current_window)
driver.set_window_size(1024, 768)
driver.maximize_window()
七、cookies管理
from selenium import webdriverdriver = webdriver.Chrome()
driver.get("https://example.com")
all_cookies = driver.get_cookies()
print(all_cookies)
cookie = {'name': 'test_cookie','value': '12345','domain': 'example.com','path': '/','secure': True
}driver.add_cookie(cookie)
driver.delete_cookie("cookie_name")
driver.delete_all_cookies()
driver.get("https://example.com/login")
cookies = driver.get_cookies()
driver.quit()
driver = webdriver.Chrome()
driver.get("https://example.com")
for cookie in cookies:driver.add_cookie(cookie)
driver.refresh()