Beautiful Soup是Python中常用的HTML/XML解析库,它可以将HTML/XML文档解析为树形结构,方便用户进行各种操作。

以下是Beautiful Soup库的一些主要功能和示例:

1、解析HTML/XML文档

使用Beautiful Soup解析HTML/XML文档非常简单,只需使用BeautifulSoup类即可。例如,以下代码演示了如何使用Beautiful Soup解析HTML文档:


from bs4 import BeautifulSoup

html_doc = """
<html>
<head>
    <title>Example HTML Document</title>
</head>
<body>
    <h1>Example HTML Document</h1>
    <p>This is an example HTML document.</p>
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
</body>
</html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.prettify())


输出结果为:


<html>
 <head>
  <title>
   Example HTML Document
  </title>
 </head>
 <body>
  <h1>
   Example HTML Document
  </h1>
  <p>
   This is an example HTML document.
  </p>
  <ul>
   <li>
    Item 1
   </li>
   <li>
    Item 2
   </li>
   <li>
    Item 3
   </li>
  </ul>
 </body>
</html>


2、查找元素

使用Beautiful Soup查找HTML/XML文档中的元素非常方便。可以使用find()find_all()方法进行查找。例如,以下代码演示了如何查找HTML文档中的<h1>元素:


from bs4 import BeautifulSoup

html_doc = """
<html>
<head>
    <title>Example HTML Document</title>
</head>
<body>
    <h1>Example HTML Document</h1>
    <p>This is an example HTML document.</p>
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
</body>
</html>
"""

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


输出结果为:Example HTML Document

3、修改元素

使用Beautiful Soup修改HTML/XML文档中的元素非常简单。例如,以下代码演示了如何修改HTML文档中的<h1>元素:


from bs4 import BeautifulSoup

html_doc = """
<html>
<head>
    <title>Example HTML Document</title>
</head>
<body>
    <h1>Example HTML Document</h1>
    <p>This is an example HTML document.</p>
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
</body>
</html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')
h1 = soup.find('h1')
h1.string = 'New Title'
print(soup.prettify())


输出结果为:


<html>
 <head>
  <title>
   Example HTML Document
  </title>
 </head>
 <body>
<h1>New Title</h1>
<p>This is an example HTML document.</p>
<ul>
 <li>
  Item 1
 </li>
 <li>
  Item 2
 </li>
 <li>
  Item 3
 </li>
</ul>


</body> </html> ```

4、删除元素

使用Beautiful Soup删除HTML/XML文档中的元素也非常简单。例如,以下代码演示了如何删除HTML文档中的<p>元素:


from bs4 import BeautifulSoup

html_doc = """
<html>
<head>
    <title>Example HTML Document</title>
</head>
<body>
    <h1>Example HTML Document</h1>
    <p>This is an example HTML document.</p>
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
</body>
</html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')
p = soup.find('p')
p.extract()
print(soup.prettify())


输出结果为:


<html>
 <head>
  <title>
   Example HTML Document
  </title>
 </head>
 <body>
  <h1>
   Example HTML Document
  </h1>
  <ul>
   <li>
    Item 1
   </li>
   <li>
    Item 2
   </li>
   <li>
    Item 3
   </li>
  </ul>
 </body>
</html>


以上就是Beautiful Soup库的主要功能和示例。Beautiful Soup还有许多其他功能,例如修改元素属性、处理字符串、遍历树形结构等。