美文网首页
Beautiful Soup 库入门

Beautiful Soup 库入门

作者: 汪小鱼 | 来源:发表于2021-10-08 08:47 被阅读0次

    1 BeautifulSoup (“美味的汤”)库的安装

    方式一:"windows+R" 输入 cmd,在命令行中输入 pip install beautifulsoup4 安装完成后可以通过 from bs4 import BeautifukSoup 进行检测,不报错,安装成功。

    方式二:从官网下载 Beautifulsoup 的软件包并解压,cmd 命令行进入解压包目录,输入以下命令安装:python setup.py install 在 Python3 里一定要安装 beautifulsoup4 的版本,其它版本安装不上的。

    import requests
    r = requests.get("http://www.baidu.com")
    demo = r.text
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(demo,"html.parser")
    print(soup.prettify())
    

    Beautiful Soup 库是解析、遍历、维护“标签树”的功能库

    HTML 标签树

    a) Beautiful Soup 是用 Python 写的一个 HTML/XML 的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree)。
    b) 它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。可以节省你的编程时间。

    BeautifulSoup 库本身解析的是 html/xml 文档,那么这个文档与标签树是一一对应的,经过了 BeautifulSoup 类的处理,html 或 xml 文档这样的标签树,就被转换成一个 BeautifulSoup 类。BeautifulSoup 类就是能够代表标签树的一个类型。

    Beautiful Soup 库解析器

    2 BeautifulSoup类的基本元素

    代码示例

    任何存在于 HTML 语法中的标签都可以用 soup.<tag> 访问获得当 HTML 文档中存在多个相同 <tag> 对应内容时,soup.<tag> 返回第一个。每个<tag> 都有自己的名字,通过 <tag>.name 获取,字符串类型

    一个 <tag> 可以有 0 或多个属性,字典类型

    Navigablestring 可以跨越多个层次(p 标签中的 b 标签)

    Comment 是一种特殊类型

    3 基于 bs4 库的 HTML 内容遍历方法

    HTML基本格式

    <>...</> 构成了所属关系,形成了标签的树形结构

    标签树的下行遍历

    BeautifulSoup 类型是标签树的根节点

    标签树的上行遍历

    标签树的平行遍历

    平行遍历发生在同一个父节点下的各节点间,不是同一个父标签不构成平行遍历。

    在标签树中,尽管树形结构采用的是标签的形式来组织的,但是标签之间的 Navigablestring 也构成了标签树的节点,也就是说,任何一个节点,它的平行标签,它的儿子标签是可能存在 Navigablestring 类型的。

    4 基于 bs4 库的 HTML 格式化和编码

    如何让 <html> 内容更加 “友好” 的显示?

    bs4 库的 prettify() 方法,为 html 文本的标签和内容增加换行符,也可以对每个标签进行相关处理,方法:<tag>.prettify()

    bs4 库将任何 HTML 输入都变成 utf-8 编码,Python 3.x 默认支持编码是utf-8,解析无障碍。

    BeautifulSoup库知识小结

    相关文章

      网友评论

          本文标题:Beautiful Soup 库入门

          本文链接:https://www.haomeiwen.com/subject/dvownltx.html