Python BeautifulSoup prettify() 方法

2023-04-17 00:00:00 python beautifulsoup 方法

Python BeautifulSoup 的 prettify() 方法可以将一个 HTML 或 XML 的标签结构格式化为易于阅读的形式,并添加缩进和换行符。

下面是一个简单的示例代码,使用 BeautifulSoup 获取一个简单的 HTML 网页并使用 prettify() 方法格式化输出:

from bs4 import BeautifulSoup
import requests

url = 'http://www.pidancode.com'
html = requests.get(url).text
soup = BeautifulSoup(html, 'html.parser')

print(soup.prettify())

输出结果如下所示:

<!DOCTYPE html>
<html>
 <head>
  <title>
   皮蛋编程- 让编程更简单
  </title>
  <meta charset="utf-8"/>
  <meta content="width=device-width, initial-scale=1" name="viewport"/>
  <link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/5.15.1/css/all.min.css" rel="stylesheet" type="text/css"/>
  <link href="/static/img/favicon.ico" rel="shortcut icon" type="image/x-icon"/>
  <link href="/static/css/pidancode.css?20210307" rel="stylesheet" type="text/css"/>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js" type="text/javascript">
  </script>
 </head>
 <body>
  <nav class="navbar navbar-expand-lg fixed-top navbar-dark bg-primary">
   <a class="navbar-brand" href="/">
    <img alt="pidancode.com" src="/static/img/logo.png" width="64"/>
    皮蛋编程
   </a>
   <button aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation" class="navbar-toggler" data-target="#navbarNav" data-toggle="collapse" type="button">
    <span class="navbar-toggler-icon">
    </span>
   </button>
   <div class="collapse navbar-collapse" id="navbarNav">
    <ul class="navbar-nav mr-auto">
     <li class="nav-item" data-toggle="tooltip" title="文章分类">
      <a class="nav-link" href="/category/">
       <i class="fas fa-th-large">
       </i>
       分类
      </a>
     </li>
     <li class="nav-item" data-toggle="tooltip" title="标签">
      <a class="nav-link" href="/tags/">
       <i class="fas fa-tags">
       </i>
       标签
      </a>
     </li>
     <li class="nav-item" data-toggle="tooltip" title="关于我们">
      <a class="nav-link" href="/about/">
       <i class="fas fa-info-circle">
       </i>
       关于
      </a>
     </li>
    </ul>
   </div>
  </nav>
  <div class="container-fluid mt-5">
   <div class="row">
    <div class="col-md-8">
     <h1 class="title">
      皮蛋编程
     </h1>
     <ul class="list-unstyled">
      <li>
       <span class="date">
        2021-03-02
       </span>
       <a href="/190/self-organizing-map/">
        自组织映射(self-organizing map,SOM)
       </a>
      </li>
      <li>
       <span class="date">
        2021-02-20
       </span>
       <a href="/189/http2-dump/">
        http2-dump:WebMON 推出基于 Wireshark 的 HTTP/2 抓包工具
       </a>
      </li>
      <!-- 此处省略几条... -->
     </ul>
     <nav>
      <ul class="pagination justify-content-center">
       <!-- 此处省略分页部分,总共7页--> 
      </ul>
     </nav>
    </div>
   </div>
  </div>
 </body>
</html>

可以看到,HTML 页面中的标签结构得到了美观的格式化,每一个标签都按照层级缩进显示,易于读取和理解。

总的来说,prettify() 方法是 BeautifulSoup 中一个十分实用的工具,能够帮助我们更好地处理 HTML 和 XML 中的标签结构,提高代码的可读性和可维护性。

相关文章