You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Selenium识别网站中使用的所有唯一标签(附BeautifulSoup等价实现对比)

使用Selenium获取网页所有唯一HTML标签

嘿,你的思路完全没问题——通过定位页面所有元素来提取标签名再去重,刚好可以把这个实现变得更简洁优雅,而且不用依赖pandas,用Python原生的集合就能搞定,代码也更紧凑:

优化后的代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By

website = 'https://www.afr.com'

# 初始化Chrome浏览器并加载目标页面
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get(website)

# 用集合推导式直接收集所有唯一标签名(集合自动去重)
unique_tags = {element.tag_name for element in driver.find_elements(By.CSS_SELECTOR, '*')}

# 排序后输出,看起来更规整
for tag in sorted(unique_tags):
    print(tag)

# 记得关闭浏览器,避免残留进程
driver.quit()

为什么这个写法更顺手?

  • 原生去重更高效:Python的集合(set)天生就是用来处理唯一值的,不需要额外引入pandas,减少依赖的同时运行速度也更快
  • 代码更简洁:用集合推导式一行完成标签收集和去重,替代了原来循环追加列表再转Series的冗余步骤
  • 可读性拉满:逻辑一目了然,别人看代码瞬间就能get到你是在收集页面所有唯一标签
  • 小细节优化:加了driver.quit()确保浏览器正常关闭;用sorted()把标签按字母排序输出,方便你做网页结构分析时查看

如果你需要分步写(比如调试的时候想一步步看),也可以简化成这样:

# 分步调试版
elements = driver.find_elements(By.CSS_SELECTOR, '*')
tag_list = [elem.tag_name for elem in elements]
unique_tags = set(tag_list)

这样既满足了你“获取所有唯一标签做网页结构分析”的需求,代码也更清爽高效~

内容的提问来源于stack exchange,提问作者ARH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 00:47:39