#BeautifulSoup
BeautifulSoup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象
##四大对象种类
- Tag:HTML 标签加上里面包括的内容
- NavigableString 标签用 .string 即可获得标签内部的文字。
- BeautifulSoup 表示的是一个文档的全部内容。大部分时候,可以把它当作 Tag 对象,是一个特殊的 Tag,我们可以分别获取它的类型,名称,以及属性
- Comment Comment 对象是一个特殊类型的 NavigableString 对象,实际输出的内容不包括注释符号,可能因此出现错误。
我们可以利用 bs4加标签名轻松地获取这些标签的内容,过有一点是,它查找的是在所有内容中的第一个符合要求的标签,如果要查询所有的标签,则需要使用find()和find_all()
for item in soup.findAll('a'):
print item,'\n'
print soup.find('a')
print soup.find_all('a', limit = 1)[0]
# limit 是取前x项的意思,find()实际等于limit=1的情况,只是find_all()返回的是列表
print soup.find_all(lambda tag: len(tag.attrs) == 2)
# BS4允许我们把特定函数类型当做findAll函数的参数,唯一的限制是这些函数必须把一个标签当做参数且返回结果为bool类型。
对于Tag而言,有两个很重要的属性,一个是name,一个是attrs。
name获得属性值, attrs获得类选择器