加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python爬虫利器之Beautiful Soup 简介和安装

发布时间:2020-12-17 16:59:19 所属栏目:Python 来源:网络整理
导读:1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下: Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取

1. Beautiful Soup的简介

简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下:

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

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

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

废话不多说,我们来试一下吧~


2. Beautiful Soup 安装


Beautiful Soup 3 目前已经停止开发,推荐在现在的项目中使用Beautiful Soup 4,不过它已经被移植到BS4了,也就是说导入时我们需要 import bs4 。所以这里我们用的版本是 Beautiful Soup 4.3.2 (简称BS4),另外据说 BS4 对 Python3 的支持不够好,不过我用的是 Python2.7.7,如果有小伙伴用的是 Python3 版本,可以考虑下载 BS3 版本。


可以利用 pip 或者 easy_install 来安装,以下两种方法均可

easy_install?beautifulsoup4
pip?install?beautifulsoup4


3.安装完成后的问题


Beautiful Soup发布时打包成Python2版本的代码,在Python3环境下安装时,会自动转换成Python3的代码,如果没有一个安装的过程,那么代码就不会被转换.


如果代码抛出了 ImportError 的异常: “No module named HTMLParser”,这是因为你在Python3版本中执行Python2版本的代码.


如果代码抛出了 ImportError 的异常: “No module named html.parser”,这是因为你在Python2版本中执行Python3版本的代码.


如果遇到上述2种情况,最好的解决方法是重新安装BeautifulSoup4.


如果在ROOT_TAG_NAME = u’[document]’代码处遇到 SyntaxError “Invalid syntax”错误,需要将把BS4的Python代码版本从Python2转换到Python3. 可以重新安装BS4:

$?Python3?setup.py?install

或在bs4的目录中执行Python代码版本转换脚本

$?2to3-3.2?-w?bs4


下表列出了主要的解析器,以及它们的优缺点:


解析器 使用方法 优势 劣势
Python标准库 BeautifulSoup(markup,"html.parser")
  • Python的内置标准库

  • 执行速度适中

  • 文档容错能力强

  • Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差

lxml HTML 解析器 "lxml")
  • 速度快

  • 文档容错能力强

  • 需要安装C语言库

lxml XML 解析器

["lxml-xml"])

"xml")

  • 速度快

  • 唯一支持XML的解析器

  • 需要安装C语言库

html5lib "html5lib")
  • 最好的容错性

  • 以浏览器的方式解析文档

  • 生成HTML5格式的文档

  • 速度慢

  • 不依赖外部扩展



(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读