您的位置:首页 > 编程语言 > Python开发

Python语言学习:Beautiful Soup四个对象的具体用法

2017-04-19 10:07 531 查看
Beautiful Soup是Python的一个库,最主要的功能是从网页抓取数据。

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

Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。





Beautiful Soup对象种类

Beautiful Soup将复杂HTML文档,转换成一个复杂的树形结构。每个节点都是Python对象,所有对象可以归纳为4种:Tag、NavigableString、BeautifulSoup、Comment。

(1)Tag

Tag 其实就是HTML 中的一个个标签,比如:

<title>The Dormouse's story</title>

<aclass="sister" href="http://example.com/elsie" id="link1">Elsie</a>

上面的title 、a 等等HTML 标签加上里面包括的内容就是Tag

例如:用Beautiful Soup 来获取Tags

print soup.title

print soup.head

print soup.a

print soup.p

print type(soup.a)

print soup.name

print soup.head.name

(2)NavigableString

如果已经得到了标签的内容,要想获取标签内部的文字怎么办?

例如:可以用.string 获取内部文字

print soup.p.string

这样就轻松获取到了标签里面的内容,如果用正则表达式,要复杂很多。它的类型是一个NavigableString,其意思是可以遍历的字符串。

print type(soup.p.string)

(3)BeautifulSoup

BeautifulSoup对象表示的是一个文档的全部内容。很多时候可以把它当作一个特殊的Tag 对象

例如:可以分别获取它的类型,名称,以及属性

print type(soup.name)

print soup.name

print soup.attrs

(4)Comment

Comment对象是一特殊类型NavigableString对象,输出的内容仍不包括注释符号。如果它处理不好,可能会对文本处理造成意想不到的麻烦。

例如:找一个带注释的标签

print soup.a

print soup.a.string

print type(soup.a.string)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  对象 Beautiful Soup