Python爬虫包BeautifulSoup简介与安装(一)
先发官方文档的地址:官方文档
学习使用的书籍是Python网络数据采集(RyanMitchell著),大约是一些笔记的整理。
BeautifulSoup的简介
简单来说,BeautifulSoup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下:
BeautifulSoup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。
BeautifulSoup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,BeautifulSoup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。
BeautifulSoup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。
安装
BeautifulSoup3目前已经停止开发,推荐在现在的项目中使用BeautifulSoup4,不过它已经被移植到BS4了,也就是说导入时我们需要importbs4。所以这里我们用的版本是BeautifulSoup4.3.2(简称BS4)。
书本中的源代码用的是Python3,但是据说BS4对Python3的支持不够好,所以我用的是Python2.7。源码中也会相应地调整一些包的引入。
因为之前写过CNN等,需要在windows下配置环境,所以已经安装了anaconda。如果安装了anaconda的读者,可以直接使用pip安装,conda需要搜索一下,直接安装时不行的。
anacondasearch-tcondabeautifulsoup condainstallbeautifulsoup4 pipinstallbeautifulsoup4
如果想安装最新的版本,请直接下载安装包来手动安装,也是十分方便的方法。在这里我安装的是beautifulsoup4(4.5.1)
BeautifulSoup3.2.1
BeautifulSoup4.5.1
下载完成之后解压
运行下面的命令即可完成安装
sudopythonsetup.pyinstall
有时候的安装方式会需手动安装lxml,如果用conda安装会自动把依赖包给安装上。
pipinstalllxml
创建BeautifulSoup对象
首先导入bs4库
frombs4importBeautifulSoup
用urlopen读取一段HTML的内容
importsys ifsys.version_info[0]==2: fromurllib2importurlopen#Python2 else: fromurllib.requestimporturlopen#Python3 html=urlopen(http://www.pythonscraping.com/exercises/exercise1.html)
用读取的内容创建beautifulsoup对象
bsObj=BeautifulSoup(html.read()) print(bsObj.h1)
此外我们也可以用本地的HTML文件来创建对象,例如
soup=BeautifulSoup(open('index.html'))
输出测试
printbsObj.h1 printbsObj.prettify()
AnInterestingTitle
AUsefulPage AnInterestingTitle
Loremipsumdolorsitamet,consecteturadipisicingelit,seddoeiusmodtemporincididuntutlaboreetdoloremagnaaliqua.Utenimadminimveniam,quisnostrudexercitationullamcolaborisnisiutaliquipexeacommodoconsequat.Duisauteiruredolorinreprehenderitinvoluptatevelitessecillumdoloreeufugiatnullapariatur.Excepteursintoccaecatcupidatatnonproident,suntinculpaquiofficiadeseruntmollitanimidestlaborum.
以上便是输出结果,格式化打印出了它的内容,并且可以通过成员对象的方式获得解析后的HTML层次。
以上全部为本篇文章的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。