📜  获取元素标签名称 beautfulsoup - Python (1)

📅  最后修改于: 2023-12-03 15:27:49.031000             🧑  作者: Mango

获取元素标签名称 - BeautifulSoup - Python

在使用BeautifulSoup库进行HTML或XML的解析时,需要了解如何获取元素的标签名称。本文将为大家介绍几种获取元素标签名称的方法。

环境配置

在开始之前,需要安装BeautifulSoup库。可以使用以下命令进行安装:

pip install beautifulsoup4
示例HTML代码

本文将使用以下示例HTML代码进行演示:

<html>
  <head>
    <title>Example HTML</title>
  </head>
  <body>
    <div class="content">
      <h1>Example Heading</h1>
      <p>Example paragraph.</p>
      <ul>
        <li>Item 1</li>
        <li>Item 2</li>
      </ul>
    </div>
  </body>
</html>
方法一 - 使用name属性

在BeautifulSoup的元素对象上,可以使用name属性获取该元素的标签名称。例如,要获取<h1>元素的标签名称,可以使用以下代码:

from bs4 import BeautifulSoup

html = """
<html>
  <head>
    <title>Example HTML</title>
  </head>
  <body>
    <div class="content">
      <h1>Example Heading</h1>
      <p>Example paragraph.</p>
      <ul>
        <li>Item 1</li>
        <li>Item 2</li>
      </ul>
    </div>
  </body>
</html>
"""

soup = BeautifulSoup(html, 'html.parser')
h1 = soup.find('h1')
print(h1.name)

输出结果为:

'h1'
方法二 - 使用tag属性

在BeautifulSoup的元素对象上,也可以使用tag属性获取该元素的标签名称。例如,要获取<h1>元素的标签名称,可以使用以下代码:

from bs4 import BeautifulSoup

html = """
<html>
  <head>
    <title>Example HTML</title>
  </head>
  <body>
    <div class="content">
      <h1>Example Heading</h1>
      <p>Example paragraph.</p>
      <ul>
        <li>Item 1</li>
        <li>Item 2</li>
      </ul>
    </div>
  </body>
</html>
"""

soup = BeautifulSoup(html, 'html.parser')
h1 = soup.find('h1')
print(h1.tag)

输出结果为:

<h1>Example Heading</h1>

注意,tag属性返回的是一个BeautifulSoup的元素对象,而不是标签名称。

方法三 - 使用name属性结合CSS选择器

在BeautifulSoup的CSS选择器中,也可以使用name属性来筛选元素。例如,要获取所有<li>元素的标签名称,可以使用以下代码:

from bs4 import BeautifulSoup

html = """
<html>
  <head>
    <title>Example HTML</title>
  </head>
  <body>
    <div class="content">
      <h1>Example Heading</h1>
      <p>Example paragraph.</p>
      <ul>
        <li>Item 1</li>
        <li>Item 2</li>
      </ul>
    </div>
  </body>
</html>
"""

soup = BeautifulSoup(html, 'html.parser')
lis = soup.select('li')
for li in lis:
  print(li.name)

输出结果为:

'li'
'li'
结论

通过以上三种方法,可以在BeautifulSoup中获取元素的标签名称。其中,第一种方法是最简单和最快捷的。