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

如何通过标签与特定属性在BeautifulSoup中查找元素并提取数据

问题解决:提取HTML指定元素信息

目标HTML结构

<main>
    <div id="rows">
        <p data-name="First Element">
            <a target="_blank" href="localhost">
                <strong>First Element</strong>
            </a>
            <strong class="date-field" data-date="2016-06-27">6 years</strong>
        </p>
        <p data-name="Second Element">
            <a target="_blank" href="localhost">
                <strong>Second Element</strong>
            </a>
            <strong class="date-field" data-date="2016-06-27">6 years</strong>
        </p>
    </div>    
</main>

提取需求

  • 查找所有带有data-name属性的<p>元素;
  • 对每个<p>元素,选中带有data-date属性的<strong>标签;
  • 提取<a>标签的href属性以及上述<strong>标签的内容。

现有代码片段

from bs4 import BeautifulSoup


file = open('index.html', 'r')
file_text = file.read()

soup = BeautifulSoup(file_text, "html.parser")

results = soup.find("main").find(id="rows")

完整实现代码

基于现有代码补充逻辑,完成需求:

from bs4 import BeautifulSoup

# 读取HTML文件(用with语句自动关闭文件更安全)
with open('index.html', 'r') as file:
    file_text = file.read()

soup = BeautifulSoup(file_text, "html.parser")

# 定位到rows容器
rows_container = soup.find("main").find(id="rows")

# 1. 筛选所有带data-name属性的p元素
p_elements = rows_container.find_all("p", attrs={"data-name": True})

# 遍历提取目标信息
extracted_data = []
for p in p_elements:
    # 2. 获取当前p下带data-date属性的strong标签
    date_strong = p.find("strong", attrs={"data-date": True})
    # 3. 提取a标签的href属性
    a_href = p.find("a")["href"]
    # 提取strong标签的文本内容(strip=True去除前后空白)
    date_content = date_strong.get_text(strip=True)
    
    extracted_data.append({
        "链接地址": a_href,
        "日期文本": date_content
    })

# 输出提取结果示例
for item in extracted_data:
    print(f"{item['链接地址']} | {item['日期文本']}")

代码说明

  • find_all("p", attrs={"data-name": True})精准匹配带data-name属性的<p>元素;
  • 对每个<p>元素,通过find("strong", attrs={"data-date": True})定位目标日期标签;
  • 用["href"]直接获取<a>标签的属性值,get_text(strip=True)清理文本冗余空白;
  • 用字典列表存储结果,方便后续批量处理或导出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:45:34