• Python 爬虫 解析库的使用 --- Beautiful Soup


    知道了正则表达式的相关用法,但是一旦正则表达式写的有问题,得到的可能就不是我们想要的结果了。而且对于一个网页来说,都有一定的特殊结构和层级关系,而且有很多节点都有id或class来做区分,所以借助它们的结构和属性来提取也可以。

    本随笔内容就来介绍一个强大的解析工作Beautiful Soup,它借助网页的结构和属性等特性来解析网页。有了它,我们不用再去写一些复杂的正则表达式,只需要简单的几条语句,就可以完成网页中某个元素的提取。

    1、简介

    简单来说,Beautiful Soup 就是Pyhon 的一个HTML 或XML 的解析库,可以用它来方便地从网页中提取数据。官方解释如下:

      Beautiful Soup 提供一些简单的、Python式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析分档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。

      Beautiful Soup 自动将输入文档转换为Unicode 编码,输出文档转换为UTF-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时你仅仅需要说明一下原始编码方式就可以了。

      Beautiful Soup 已成为和lxml、html6lib一样出色的Python解释器,为客户灵活地提供不同的解析策略或强劲的速度。

    所以说,利用它可以省去很多繁琐的提取工作,提供了解析效率。

    2、准备工作

    在开始之前安装好Beautiful Soup 和 lxml 

    3、解析器

    Beautiful Soup 在解析时实际上依赖解析器,它除了支持Python标准库的HTML解析器外,还支持一些第三方解析器,如下图:

    解析器 使用方法 优势 劣势
    Python标准库 BeautifulSoup(markup,“html.parser”)    
    lxml HTML解析器 BeautifulSoup(markuo,"lxml")    
    lxml XML解析器 BeautifulSoup(markuo,"xml")    
    html5lib BeautifulSoup(markuo,"html5lib")    
  • 相关阅读:
    bootstrap 弹出框(Popover)插件 修改title等属性选项值
    dedecms 搬家流程
    jQuery ui 百叶窗blind方向设置
    css 优先级
    dedecms 标签
    dedecms 建站相关问题
    css 透明度使用
    css 边框使用
    css 阴影使用
    js 常用判断
  • 原文地址:https://www.cnblogs.com/zhangrenguo/p/10503160.html
Copyright © 2020-2023  润新知