正则表达式的使用容易理解,但是要求匹配的的语法精度高,在匹配时,不能出现一点错误,如果错误就会匹配失败。我自己在写爬虫的时候就出现的这样的情况,一个关于爬取猫眼电影的爬虫,爬取的内容不多不少:
后面找到了一个笨方法:我匹配一个运行一次,这样能保证准确率,但是对于大型爬虫自然就不能见效了(大型爬虫我相信很少使用正则),今天介绍一个比正则强大的解析库 —— Beautiful Soup
一、Beautiful Soup的简介
官方解释:
Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。
Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。
Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。
二、安装BeautifulSoup
Beautiful Soup 3 目前已经停止开发,推荐在现在的项目中使用Beautiful Soup 4,不过它已经被移植到BS4了,也就是说导入时我们需要 import bs4 。所以这里我们用的版本是 Beautiful Soup 4.3.2 (简称BS4),另外据说 BS4 对 Python3 的支持不够好,不过我用的是 Python2.7.7,如果有小伙伴用的是 Python3 版本,可以考虑下载 BS3 版本。
安装方法:
1 |
easy_install beautifulsoup4 |
1 |
pip install beautifulsoup |
另一个可供选择的解析器是纯