一,BeautifulSoup简介
简单地说,,BeautifulSoup就是Python的一个HTML或XML的解析库,可以用它方便的从网页中提取目标数据
安装
python setup.py build
python setup.py install
要注意 使用的时候不能直接import,而是要
from bs4 import BeautifulSoup
支持的解析器
解析器 | 使用方法 | 优势 | 劣势 |
---|---|---|---|
Python标准库 | BeautifulSoup(markup, “html.parser”) | 速度适中文档容错强 | 2.7前版本文档容错差 |
lxml HTML 解析器 | BeautifulSoup(markup, “lxml”) | 速度快,文档容错能力强 | 需要安装C语言库 |
lxml XML 解析器 | BeautifulSoup(markup, [“lxml”, “xml”])BeautifulSoup(markup, “xml”) | 速度快,唯一支持xml解析器 | 需要安装C语言库 |
html5lib | BeautifulSoup(markup, “html5lib”) | 最好的容错性 | 速度慢,不依赖外部扩展 |
创建BeautifulSoup对象
soup = BeautifulSoup(html)
html 可以为本地html文件,也可是通过requests.get()等方法获得的HTML文件
soup = BeautifulSoup(open(xxx.html))
BeautifulSoup将HTML文档可被Python操作的树形结构
BeautifulSoup初始化时会将不标准的HTML字符串更正格式
使用soup的各个方法和属性
.prettify()方法
把正在解析的HTML字符串按标准的缩进打印
.title.string
.title选出HTML字符串中的节点,.string输出节点中的文本内容
*.name
获取节点名称
遍历文档树
直接子节点
.contents .children 属性
.children 可迭代对象,可通过遍历获取所有子节点所有子孙节点
.descendants 属性
同children,可迭代