python之爬虫 Beautifulsoup4(四)

在第一篇我们已经了解到Beautifulsoup也是作为一种在HTML页面提取信息的工具(然而这个模块比正则表达式要简单的多)

在接触Beautiful soup之前我们已经初步了解了如何将我们的Web页面保存在磁盘中,现在我们呢具体学习bs4的一些高端操作


beautifulsoup库是解析,遍历,维护“标签树”的功能库


一、安装及创建bs4对象

同样该模块用pip installl beautifulsoup4 即可
以一段代码为例:
我们先导入库

#encoding:UTF-8
import requests
from bs4 import BeautifulSoup
创建bs4对象
s = BeautifulSoup(html,'lxml')  
#创建 beautifulsoup 对象
s1 = BeautifulSoup(open('index.html')) 
#用本地 HTML 文件来创建对象

看完这段代码可能不明白括号内的参数的含义,故我们先讲一下解析器

解析器
解析库 函数 优势 缺点
html.parser BeautifulSoup()参数为content,‘html.parser’ python标准库解析器速度一般容错力强 Python 2.7.3 or 3.2.2前的版本容错力差
lxml HTML BeautifulSoup(content,‘lxml’) 快速稳定 依赖三方库lxml
lxml XML 两种,参数分别为content,'lxml-xml’和content,‘xml’ 快速,唯一支持XML解析的 依赖三方库lxml
html5lib BeautifulSoup(content,‘html5lib’) 容错力最强,以浏览器的方式解析文档,生成有效的HTML5文件 速度慢,依赖其他三方库

e.g.

s1=BeautifulSoup(comtent,'html.parser')
s2=BeautifulSoup(comtent,'lxml')
s3=BeautifulSoup(comtent,'xml')
s4=BeautifulSoup(comtent,'html5lib')

打印输出,即使是相同的内容,我们将看到不同的结果
所以在实际情况中我们要选择合适的,是更偏重考虑规范和完整还是其性能

4种对象

Beautiful Soup将HTML文档转换成一个复杂的树形结构,每个节点都是一个python对象,可归纳为4种(Name只是标签的名字,就不详细讲解了)
python之爬虫 Beautifulsoup4(四)_第1张图片

  • Tag
    其类型为HTML中的标签
    在对HTML有一定了解的同学应该知道标签有两个重要的属性name和attr,我们可以获得这两个属性值,同样也可以修改,删除等操作(代码帮助我们更好的理解)
    在这里插入图片描述
    python之爬虫 Beautifulsoup4(四)_第2张图片

  • NavigableString
    其类型为标签里的内容,也可以修改其内容利用repalce_with
    python之爬虫 Beautifulsoup4(四)_第3张图片
    python之爬虫 Beautifulsoup4(四)_第4张图片

  • BeautifulSoup
    其类型为整个文档,大部分时候,可以把它当作 Tag 对象,是一个特殊的 Tag,我们可以分别获取它的类型,名称
    故和Tag标签一样,我们可以打印其两个属性

  • Comment
    其类型为HTML中注释的内容

e.g.这段代码可以帮助你更好了解其对象的具体含义
python之爬虫 Beautifulsoup4(四)_第5张图片


第四篇爬虫的学习就到此结束啦!

你可能感兴趣的:(python,爬虫)