四大对象种类

BeautifulSoup将复杂的html文档转换成一个复杂的树形结构,每个节点都是python对象,所有的对象可归纳为4种

1、tag

tag是什么,通俗点讲,就是html中的一个标签例如

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

<a class='sister' herf='http://example.com/elsie' id = 'link1'>Elsie</a>

上面的title,a等等html标签加上里面包括的内容就是tag,BeautifulSoup可以方便的获取tags

注意:我们可以用soup加标签名轻松地获取标签内容。不过有一点是,它查找的是在所有内容的第一个符合要求的标签,如果要查询所有的标签则要用其他的方法。

tag有两个重要的属性,name,和attrs

print soup.name

#[document]

print soup.head.name

#head

soup对象本身比较特殊,他的name即为[doucument],对于其他内部标签,输出的值便为标签本身的名称。

print soup.p.attrs

#{'class': ['title'], 'name': 'dromouse'}

在这里我们把p标签的所有属性都打印出来,得到的是一个字典。这里获取内部属性的和字典一摸一样。可以修改,删减,和字典操作一样的。

2、NavigableString

既然我们已经得到了标签的内容,那么问题来了,我们想要获取内部的文字该怎么办呢?很简单,用 .string即可,例如:

>>>print(soup.p.string)

>>>The Dormouse's story

这样我们就轻松地取到了标签里面的内容,NavigableString翻译过来是可遍历的字符串。

3、BeautifulSoup

BeautifulSoup对象表示的是一个文档的全部内容,大部分时候,可以把它当作tag对象,是一个特殊的tag,

我们可以分别获取它的类型、名称。

4、Comment

commnet对象是一个特殊类型的navigablestring对象,其实输出的内容仍然不包括注释符号。

原文地址:https://www.cnblogs.com/themost/p/6681524.html