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

如何用Beautiful Soup获取含x-y-z属性的div标签内容?

解决方法

你遇到的x-y-z是HTML自定义属性,不是class,所以不能用class_参数来匹配。可以用以下两种方法获取目标div:

方法1:使用attrs参数匹配属性存在的元素

直接通过attrs指定要匹配的属性,因为这个属性没有赋值,我们可以用True来匹配存在该属性的div:

from bs4 import BeautifulSoup

# 假设你的HTML内容存在html_doc变量中
soup = BeautifulSoup(html_doc, 'html.parser')
# 匹配带有x-y-z属性的div
target_div = soup.find("div", attrs={"x-y-z": True})
# 获取div内部的HTML代码
inner_html = target_div.decode_contents()
print(inner_html)

方法2:使用CSS选择器

CSS选择器里[属性名]可以匹配带有指定属性的元素,用select_one获取单个匹配元素:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html_doc, 'html.parser')
target_div = soup.select_one('div[x-y-z]')
inner_html = target_div.decode_contents()
print(inner_html)

补充说明

  • 如果x-y-z属性有具体值(比如<div x-y-z="some-value">),可以把True换成对应的值,或者在CSS选择器里写成div[x-y-z="some-value"]来精准匹配。
  • decode_contents()会返回div内部的HTML字符串(不包含div标签本身),如果需要包含div标签的完整HTML,直接用str(target_div)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:30:59