Python 爬虫之 Beautiful Soup4 提取网页中的数据

Lasted 2020-11-26 17:33:24

Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库。能够通过你喜欢的转换器实现文档导航、查找和修改文档。能够修复含有未闭合标签的错误文档(此种文档常被称为 tag soup)。

安装Beautiful Soup4

Beautiful Soup4 当前最新的版本为 Beautiful Soup 4.9.3 (2020-10-03 15:41)。可以通过如下 pip 命令安装:

pip install beautifulsoup4

Beautiful Soup4 支持 lxml 和 html5lib 解析器,建议安装 lxml。

pip install lxml
安装特定版本
pip install lxml==3.4.2

Beautiful Soup4 支持 Python 2 (2.7+)和 Python 3。2020年12月31日停止支持 Python 2 版本。

已过期

Beautiful Soup4 于2020年12月31日停止对 Python 2 版本的支持。

解析网页

下面介绍解析网页数据和几个简单获取数据的方法。

# coding=utf-8

from urllib.request import urlopen
from bs4 import BeautifulSoup

with urlopen('https://docsxyz.com/wiki/news/rainbow-six-siege-next-gen-update-1126') as f:
    content = f.read().decode('utf-8')
    
    soup = BeautifulSoup(content, "lxml")

    # 获取网页标题
    title = soup.title.string
    # PS5 和 XSX 玩家看过来,《彩虹六号:围攻行动》终于出 4K 120 fps 模式了! - Docsxyz

    # 获取第一个 p 元素
    p = soup.p
    # <p class="mt-title-post">12月1日可以免费升级</p>

    # 获取页面中所有 p 元素
    ps = soup.find_all('p')
    # [<p>.....</p>, <p>.....</p>, <p>.....</p>]

    # 格式化输出 HTML
    soup.prettify()

相关链接