python爬虫beautifulsoup
1、BeautifulSoup库,也叫beautifulsoup4或bs4
功能:解析HTML/XML文档
2、HTML格式
成对尖括号构成
3、库引用
#bs4为简写,BeautifulSoup为其中一个类 from bs4 import BeautifulSoup #直接引用库 import bs4
3.1、BeautifulSoup类
>>from bs4 import BeautifulSoup
>>soup=BeautifulSoup("<html>data</html>","html.parser")
>>soups=BeautifulSoup(open("D://demo.html"),"html.parser")
可以直接操作源码,也可以操作文件
3.1、html.parser为bs4的html解析器,安装了bs4库即可使用
lxml为lxml的HTML解析器,安装lxml
xml为lxml的xml解析器,安装lxml
html5lib为html5lib的解析器,安装html5lib
3.2、基本元素
3.2.1、Tag:标签,最基本信息组织单元,分别用<>和</>标明开头和结尾
3.2.2、Name:标签的名字,<p>...</p>,格式:<tag>.attrs
3.2.3、Attributes:标签的属性,字典形式的组织,格式<tag>.attrs
3.2.4、NavigableString:标签内非属性字符串,<>...</>中字符串,格式<tag>.string
3.2.5、Comment:标签内字符串的注释部分,一种特殊的Comment类型
3.3、标签遍历
3.3.1、下行遍历
.contents:返回列表类型
.children:返回迭代类型,智能用在for循环语句中
.descendants:返回迭代类型,智能用在for循环语句中
3.3.2、上行遍历
.parent:返回当前节点的父亲节点
.parents:返回当前节点所有先辈节点
3.3.3、平行遍历
.next_sibling
.previous_sibing
.next_siblings:迭代类型
.previous_siblings:迭代类型
4、html格式输出
python3.x系列支持的是utf-8编码,bs4库支持utf-8编码,如果使用python2.x需要编码转化
>>soup=BeautifulSoup(demo,"html.parser")
>>print(soup.prettify())
demo为HTML文档
打印计较清晰,每个标签,内容分行显示。