使用BeautifulSoup解析HTML文件

2023-04-17 00:00:00 beautifulsoup 文件 解析

下面是一个使用BeautifulSoup解析HTML文件的示例代码:

from bs4 import BeautifulSoup

# 创建一个HTML文件字符串
html_doc = """
<!DOCTYPE html>
<html>
<head>
  <title>pidancode.com</title>
</head>
<body>
  <h1>皮蛋编程</h1>
  <p>欢迎来到皮蛋编程网站!<br>我们致力于提供优质的编程教育资源。</p>
  <ul>
    <li><a href="https://www.pidancode.com/python">Python教程</a></li>
    <li><a href="https://www.pidancode.com/java">Java教程</a></li>
    <li><a href="https://www.pidancode.com/web">Web开发教程</a></li>
  </ul>
</body>
</html>
"""

# 用BeautifulSoup解析HTML文件
soup = BeautifulSoup(html_doc, 'html.parser')

# 获取title标签的内容
print(soup.title.string)

# 获取h1标签的内容
print(soup.h1.string)

# 获取p标签的内容
print(soup.p.string)

# 获取ul标签下的所有li标签
for li in soup.ul.find_all('li'):
    print(li.a.string, li.a['href'])

输出结果为:

pidancode.com
皮蛋编程
欢迎来到皮蛋编程网站!
Python教程 https://www.pidancode.com/python
Java教程 https://www.pidancode.com/java
Web开发教程 https://www.pidancode.com/web

在这个例子中,我们首先定义了一个HTML文件字符串html_doc,它包含了一个title标签、一个h1标签、一个p标签和一个ul标签。然后我们使用BeautifulSoup将这个字符串解析成一个对象soup。接着,我们使用soup对象来获取HTML文件中各个标签的内容或属性。

例如,我们可以使用soup.title来获取title标签对象,然后使用string属性来获取标签的文本内容,最终输出了pidancode.com。同样的,我们也可以使用soup.h1soup.p等来获取其他标签的内容。我们还可以使用find_all方法来查找HTML文件中的特定标签或属性,例如我们在上面通过soup.ul.find_all('li')获取了ul标签下的所有li标签,并输出了它们的文本内容和href属性。

通过BeautifulSoup,我们可以很方便地解析HTML文件并从中提取出我们需要的信息。

相关文章