如何使用 Beautiful Soup 提取此 HTML 元素属性的值?

Posted

技术标签:

【中文标题】如何使用 Beautiful Soup 提取此 HTML 元素属性的值?【英文标题】:How would I extract the value of this HTML element attribute with Beautiful Soup? 【发布时间】:2012-01-01 13:51:41 【问题描述】:

我正在开发一个小工具来抓取网页。我正在使用Beautiful Soup。我想从页面中获取类 ID。 html 代码如下所示:

<span class='class_id' id='New_line'></span>

如何获得class_id

【问题讨论】:

【参考方案1】:

此答案是指未提及 beautifulsoup 的旧版本问题

您可以使用 LXML 并遍历所有元素,要求它们提供“类”属性的值。 LXML 是一个用于解析 XML 文档的库。

例如:

from lxml import etree
root = etree.parse(filename).getroot()

for span in root.iterdescendants("span"):
    cls = span.attrib.get("class")

【讨论】:

我正在使用 beautifulsoup 库来解析 HTML。你认为我可以用它来获取类属性吗? 也许您在here 中查找“标签的属性”。【参考方案2】:

下面的例子对你有帮助吗?

>>> from BeautifulSoup import BeautifulSoup as B
>>> s = B("<span class='class_id' id='New_line'></span>")
>>> s.span.attrs
[(u'class', u'class_id'), (u'id', u'New_line')]

【讨论】:

以上是关于如何使用 Beautiful Soup 提取此 HTML 元素属性的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Beautiful Soup 从 <script> 中提取内容

使用Beautiful Soup 4提取特定列表项

python 使用Beautiful Soup从页面中提取数据

使用 Beautiful Soup 提取 css 链接

使用 Beautiful Soup 提取链接的等效正则表达式

Beautiful Soup - 在 div 之后提取