0.背景:要下合适自己的驱动,不然都是报错!!
你需要完成以下两步:
-
检查你的 Chrome 浏览器版本。
- 打开 Chrome,在地址栏输入
chrome://settings/help
。 - 你会看到你的 Chrome 版本号,例如
版本 120.0.6099.110
。
- 打开 Chrome,在地址栏输入
-
下载对应版本的
ChromeDriver
。- 访问新的官方下载地址:Chrome for Testing availability
- 在页面上找到和你的浏览器版本号最匹配的
chromedriver
,然后下载win64
版本(如果你的系统是64位)。 - 下载下来的是一个 zip 压缩包,解压后会得到
chromedriver.exe
文件。
-
在代码中指定
chromedriver.exe
的路径。
这是最关键的一步。你需要使用Service
对象来告诉 Selenium -
chromedriver.exe
在哪里。假设你把
chromedriver.exe
解压到了C:\webdriver
目录下。
1.selenium基本使用:
from selenium import webdriver
# 1. 导入 Service 类
from selenium.webdriver.chrome.service import Service# (2) 创建浏览器操作对象# chromedriver.exe 的路径
path = r'C:\Users\liqi1\Downloads\chromedriver-win64\chromedriver-win64\chromedriver.exe'# 2. 创建一个 Service 对象
service = Service(executable_path=path)# 3. 将 service 对象传递给 webdriver.Chrome
# 注意这里用的是关键字参数 service=...
browser = webdriver.Chrome(service=service)# (3)访问网站
url = 'https://www.jd.com/'
print(f"正在访问: {url}")browser.get(url)# page_source获取网页源码
content = browser.page_source
print("已成功获取网页源码:")
# 为了方便查看,只打印前500个字符
print(content[:500]) # 记得在程序结束时关闭浏览器
browser.quit()
2.healess无头浏览器启动demo:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Servicedef share_browser():chrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')# path是你自己的chrome浏览器的文件路径# 注意:如果你的Chrome是标准安装,这行通常可以省略,Selenium能自己找到browser_path = r'C:\Program Files\Google\Chrome\Application\chrome.exe'chrome_options.binary_location = browser_path# === 关键改动在这里 ===# 1. 指定你下载的 chromedriver.exe 的路径driver_path = r'C:\Users\liqi1\Downloads\chromedriver-win64\chromedriver-win64\chromedriver.exe' # <-- !!! 修改这里为你自己的路径 !!!# 2. 创建一个Service对象service = Service(executable_path=driver_path)# 3. 在创建浏览器实例时传入 service 和 optionsbrowser = webdriver.Chrome(service=service, options=chrome_options)return browser# --- 主程序 ---
try:print("正在启动浏览器...")browser = share_browser()url = 'https://www.baidu.com'print(f"正在访问: {url}")browser.get(url)# 打印页面标题,验证是否成功print(f"页面标题是: {browser.title}")except Exception as e:print(f"代码运行出错: {e}")finally:# 确保在程序结束时关闭浏览器if 'browser' in locals():browser.quit()print("浏览器已关闭。")