欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > Python Selenium爬虫功能使用介绍

Python Selenium爬虫功能使用介绍

2025/5/9 7:38:50 来源:https://blog.csdn.net/leon_zeng0/article/details/147726074  浏览:    关键词:Python Selenium爬虫功能使用介绍
本文介绍python selenium 爬虫的功能以及使用

1. 基础核心功能

浏览器控制

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager# 自动管理浏览器驱动
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))# 控制浏览器窗口
driver.maximize_window()  # 最大化窗口
driver.minimize_window()  # 最小化窗口
driver.set_window_size(1200, 800)  # 自定义尺寸
页面导航

driver.get("https://www.baidu.com")  # 打开网页
driver.refresh()  # 刷新页面
driver.back()     # 返回上一页
driver.forward()  # 前进下一页
元素定位(8种方式)

from selenium.webdriver.common.by import By# 常用定位方式
driver.find_element(By.ID, "kw")           # ID定位
driver.find_element(By.NAME, "wd")         # Name属性
driver.find_element(By.CLASS_NAME, "s_ipt") # Class名
driver.find_element(By.TAG_NAME, "input")   # 标签名
driver.find_element(By.LINK_TEXT, "新闻")   # 链接文本
driver.find_element(By.XPATH, "//input[@id='kw']")  # XPath
driver.find_element(By.CSS_SELECTOR, "#kw") # CSS选择器

2. 高级交互功能

表单操作

element = driver.find_element(By.ID, "kw")
element.send_keys("Python")       # 输入文本
element.clear()                   # 清空输入框
element.send_keys(Keys.RETURN)    # 模拟回车键
鼠标 & 键盘动作

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys# 鼠标悬停/双击/右击
actions = ActionChains(driver)
actions.move_to_element(element).perform()  # 悬停
actions.double_click(element).perform()     # 双击
actions.context_click(element).perform()    # 右击# 键盘组合键
element.send_keys(Keys.CONTROL + 'a')  # Ctrl+A全选
下拉框处理

from selenium.webdriver.support.select import Selectselect = Select(driver.find_element(By.TAG_NAME, "select"))
select.select_by_index(1)      # 按索引选择
select.select_by_value("opt1") # 按value值
select.select_by_visible_text("选项文本")  # 按可见文本

3. 等待机制(避免元素未加载)

显式等待(推荐)

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 等待最多10秒,直到元素可见
element = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, "kw"))
)
隐式等待(全局设置)

driver.implicitly_wait(5)  # 每次查找元素最多等5秒

4. 高级特性

执行JavaScript

# 滚动页面/修改属性/复杂操作
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
driver.execute_script("arguments[0].style.border='3px solid red';", element)
Cookie管理

driver.get_cookie("session_id")  # 获取指定cookie
driver.add_cookie({"name": "test", "value": "123"})  # 添加cookie
driver.delete_all_cookies()      # 清除所有cookie
截图与日志

driver.save_screenshot("error.png")  # 页面截图# 获取控制台日志
logs = driver.get_log("browser")  # Chrome需配置选项

5. 实际应用场景

自动化测试

# 登录测试示例
def test_login():driver.find_element(By.ID, "username").send_keys("test")driver.find_element(By.ID, "password").send_keys("123456")driver.find_element(By.ID, "submit").click()assert "欢迎页" in driver.title
数据爬取

# 爬取动态渲染的新闻标题
titles = driver.find_elements(By.CSS_SELECTOR, ".news-title")
for title in titles:print(title.text)
文件上传

driver.find_element(By.ID, "file-upload").send_keys("/path/to/file.txt")

6. 特殊场景处理

iframe切换

driver.switch_to.frame("iframe_id")  # 进入iframe
driver.switch_to.default_content()   # 返回主文档
多窗口/标签页

driver.switch_to.window(driver.window_handles[1])  # 切换到第二个标签页
无头模式(Headless)

options = webdriver.ChromeOptions()
options.add_argument("--headless")  # 无界面运行
driver = webdriver.Chrome(options=options)

总结表格

功能类别主要方法/类典型应用场景
浏览器控制webdriver.Chrome()启动/关闭浏览器
元素定位By类 + find_element()表单填写/按钮点击
等待机制WebDriverWait + EC处理动态加载内容
高级交互ActionChains/Select鼠标操作/下拉框选择
JavaScript执行execute_script()页面滚动/修改DOM属性
多窗口处理switch_to.window()处理弹出窗口/多标签页

通过组合这些功能,可以完成从简单自动化到复杂爬虫/测试的全流程操作。建议从基础定位和交互开始练习,逐步掌握高级特性。

下载 ChromeDriver 的简单方法

自动下载(推荐)

使用 webdriver-manager 库可以自动下载匹配的 ChromeDriver:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager# 自动下载并安装 ChromeDriver
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://www.google.com")

安装 webdriver-manager

pip install webdriver-manager

自动下载关键特点

  1. 自动版本管理

    • 会自动检测你安装的 Chrome 浏览器版本

    • 下载匹配的 ChromeDriver 版本

  2. 目录结构

    .wdm/
    └── drivers/└── chromedriver/└── [操作系统类型]/└── [版本号]/└── chromedriver[.exe]
  3. 无需手动配置

    • 每次运行时会检查是否已有匹配版本

    • 如果没有或版本不匹配,会自动下载新版

查看实际路径的方法

如果你想查看具体安装在哪里,可以临时修改代码:

from webdriver_manager.chrome import ChromeDriverManager

path = ChromeDriverManager().install()
print(f"ChromeDriver 安装在: {path}")

这会在控制台输出类似:

%runfile C:/python/installChromDriver.py --wdir
ChromeDriver 安装在: C:\Users\leon\.wdm\drivers\chromedriver\win64\136.0.7103.49\chromedriver-win32/chromedriver.exe

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词