news 2026/6/9 16:07:18

python(爬虫selenium)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python(爬虫selenium)

Selenium 是一款用于模拟浏览器行为的自动化测试工具,也是爬虫领域中处理动态渲染页面(如 JS 加载、Ajax 请求、登录验证等)的核心工具。

一、导入库

from selenium import webdriver from selenium.webdriver.edge.options import Options from selenium.webdriver.common.by import By import time # edge_options =Options() edge_options.binary_location=r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" # ##edge浏览器的地址 driver = webdriver.Edge(options=edge_options)

1.导入相关库的函数

from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.common.by import By

2.导入edge浏览器的内核

edge_options.binary_location=r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"

二、核心操作浏览器与页面控制

1.基础操作

打开页面driver.get("https://www.example.com")访问目标 URL
刷新页面driver.refresh()刷新当前页面
前进 / 后退driver.forward()/driver.back()模拟浏览器前进 / 后退
窗口大小driver.set_window_size(1920, 1080)设置窗口尺寸
全屏driver.maximize_window()窗口最大化
关闭窗口driver.close()关闭当前标签页
退出浏览器driver.quit()关闭所有标签页并退出驱动(必写,否则进程残留)

2.页面元素定位

定位元素是 Selenium 操作的基础,优先使用唯一标识(id/name),其次用 XPath/CSS 选择器,避免用索引(易变)。

IDfind_element(By.ID, "id值")driver.find_element(By.ID, "username")元素有唯一 ID
Namefind_element(By.NAME, "name值")driver.find_element(By.NAME, "password")元素有 name 属性
Class Namefind_element(By.CLASS_NAME, "类名")driver.find_element(By.CLASS_NAME, "btn-submit")类名唯一
Tag Namefind_element(By.TAG_NAME, "标签名")driver.find_element(By.TAG_NAME, "input")标签唯一(如单个 input)
Link Textfind_element(By.LINK_TEXT, "链接文本")driver.find_element(By.LINK_TEXT, "登录")精准匹配超链接文本
Partial Link Textfind_element(By.PARTIAL_LINK_TEXT, "部分文本")driver.find_element(By.PARTIAL_LINK_TEXT, "登")模糊匹配超链接
XPathfind_element(By.XPATH, "XPath表达式")driver.find_element(By.XPATH, '//*[@id="username"]')复杂定位(万能)
CSS Selectorfind_element(By.CSS_SELECTOR, "CSS表达式")driver.find_element(By.CSS_SELECTOR, "#username")高效定位(推荐)

3.元素交互

# 1. 点击元素(按钮/链接/复选框) btn_elem = driver.find_element(By.CLASS_NAME, "submit-btn") btn_elem.click() # 2. 获取元素属性/文本 elem = driver.find_element(By.XPATH, '//div[@class="content"]') print(elem.text) # 获取元素可见文本 print(elem.get_attribute("href")) # 获取href属性 print(elem.get_attribute("innerHTML")) # 获取内部HTML # 3. 输入文本(先清空再输入) input_elem = driver.find_element(By.ID, "username") input_elem.clear() # 清空输入框 input_elem.send_keys("test123") # 输入内容

执行Javascript 代码,可以将页面滚动到底部。
driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')

4.等待渲染

可以通过time函数用sleep方法等待

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 16:45:32

Wireshark官网中文版下载和安装教程(附安装包,图文版)

Wireshark 中文版是一款免费的网络协议分析软件。通俗来讲,Wireshark 就像网络世界的 “显微镜”,能帮用户 “看透” 网络数据的传输过程。 Wireshark 中文版完全免费且无广告,所有核心功能、素材库都没有隐藏付费项目,也没有会员…

作者头像 李华
网站建设 2026/6/7 2:28:06

汇编语言全接触-32.多文档界面(MDI)

本教程告诉你怎样创建MDI应用程序.事实上并不是很困难.下载例子.理论:多文档界面(MDI)是同一时刻处理多个文档的应用程序的一个规范. 你很熟悉记事本.它是单文档界面(SDI)的一个例子.记事本在一个时候只能处理一个文档.假如你希望打开另一个文档,你首先必须关闭你前面打开的那…

作者头像 李华
网站建设 2026/6/7 9:36:53

技术成果的价值量化方法

在当今知识经济时代,企业的竞争力越来越取决于技术创新的能力与成果转化水平。**要实现技术成果的最大价值,关键在于建立科学的价值量化方法,使无形的技术资产能够被准确评估和管理。**技术成果价值量化不仅关系到研发投入回报率的评估&#…

作者头像 李华
网站建设 2026/6/9 3:36:23

年终绩效复盘机制如何设计

在现代组织管理中,年终绩效复盘不仅是一场总结会议,更是企业自我进化的重要机制。**要设计出高效的年终绩效复盘机制,关键在于建立科学的目标体系、数据驱动的评价方法,以及能促进组织学习的复盘文化。**只有将绩效复盘从“考核”…

作者头像 李华
网站建设 2026/6/7 1:29:18

避免绩效考核形式化的策略

绩效考核是组织管理中最重要的环节之一,它不仅决定员工的激励机制,也直接影响企业的战略落地效果。**要避免绩效考核流于形式,关键在于建立科学的目标体系、有效的沟通反馈机制以及与发展挂钩的改进路径。**绩效考核只有真正服务于组织成长与…

作者头像 李华
网站建设 2026/6/7 4:20:32

银河麒麟下Redis的安装和集群配置

Redis集群简介Redis集群和高可用有几种方式:其中一种是主从复制,实现数据的多机备份和读操作的负载均衡。一主多从,主库支持读写操作,从库只支持读。在主从复制基础上,哨兵实现了自动化的故障恢复。通过哨兵监控主节点…

作者头像 李华