📜  Beautiful Soup-各种物品(1)

📅  最后修改于: 2023-12-03 14:59:30.707000             🧑  作者: Mango

Beautiful Soup - 各种物品

Beautiful Soup 是一个用于 web 数据抽取的 Python 库。它能够从 HTML 或 XML 文件中提取数据,具有快速、灵活、易用的特点。

安装

使用 pip 命令即可安装 Beautiful Soup。

pip install beautifulsoup4
抽取 HTML 数据

使用 Python 解析器进行解析,其中 Beautiful Soup 会对 HTML 标签和特性进行解析和转换。

from bs4 import BeautifulSoup

html_doc = """
<html>
<head>
  <title>.title { color: red }</title>
</head>
<body>
  <h1 class="title">Beautiful Soup</h1>
  <p class="description">Web 抽取库</p>
  <ul>
    <li><a href="http://www.example.com">example</a></li>
    <li><a href="http://www.example.com">example</a></li>
  </ul>
</body>
</html>
"""

# 将 HTML 代码解析成 Beautiful Soup 对象
soup = BeautifulSoup(html_doc, 'html.parser')

# 输出标题文本
print(soup.title.string)

# 输出所有链接文本
for link in soup.find_all('a'):
    print(link.string)
抽取 XML 数据

Beautiful Soup 同样可以用于提取 XML 数据,其原理同抽取 HTML 数据类似。

import xml.etree.ElementTree as et

xml = '''
<root>
  <item name="item1">Item One</item>
  <item name="item2">Item Two</item>
  <item name="item3">Item Three</item>
</root>
'''

# 将 XML 代码解析成 Beautiful Soup 对象
soup = BeautifulSoup(xml, 'xml')

# 获取所有 item
items = soup.find_all('item')

# 输出所有 item 的 name 和文本
for item in items:
    print(item['name'], item.string)
使用 CSS 选择器

Beautiful Soup 支持使用 CSS 选择器进行元素选择,使用起来非常方便。

from bs4 import BeautifulSoup

html_doc = """
<html>
<head>
  <title>Beautiful Soup</title>
</head>
<body>
  <h1 class="title">Beautiful Soup</h1>
  <div id="content">
    <p class="description">Web 抽取库</p>
    <ul>
      <li><a href="http://www.example.com">example</a></li>
      <li><a href="http://www.example.com">example</a></li>
    </ul>
  </div>
</body>
</html>
"""

# 将 HTML 代码解析成 Beautiful Soup 对象
soup = BeautifulSoup(html_doc, 'html.parser')

# 使用 CSS 选择器
print(soup.select('#content > p.description')[0].text)
总结

Beautiful Soup 是一个非常实用的 web 数据抽取库,能够方便地从 HTML 或 XML 文件中提取数据,并支持多种选择器进行元素选择。如果你需要从网页中获取数据,不妨试试 Beautiful Soup。