BeautifulSoup库

<html>
<body>
<p class='title'></p>
</body>
</html>

BeautifulSoup库是解析、遍历、维护、"标签树"的功能库

对标签的理解

<p class='title'></p>
<!--成对的尖括号和属性-->

导入beautifulsoup库

from bs4 import BeautifulSoup
import bs4

构造解析html的BeautifulSoup对象

from bs4 import BeautifulSoup
soup1=BeautifulSoup("<html>data</html>","html.parser")
soup2=BeautifulSoup(open("D://demo.html"),"html.parser")

BeautifulSoup库对应一个HTML/XML文档的全部内容

四种解析器

bs4的HTML解析器BeautifulSoup(mk,'html.parser')安装bs4库
lxml的HTML解析器BeautifulSoup(mk,'lxml')pip install lxml
lxml的xml解析器BeautifulSoup(mk,'xml')pip install lxml
html5lib的解析器BeautifulSoup(mk,'html5lib')pip install html5lib

五种基本元素

Tag标签,<>开头和</>结尾
Name标签的名字,格式.name
Attribute标签的属性,字典形式进行组织,.attrs
NavigatableString标签内非属性字符串,格式.string
Comment标签内字符串注释部分

获取页面信息demo

from bs4 import BeautifulSoup
import requests
html=requests.get('http://python123.io/ws/demo.html').text
soup=Beautiful(demo,'html.parser')
tag=soup.a#获取第一个a标签
name=tag.name#'a',标签的名称
parentName=soup.a.parent.name#获取父亲节点的名称
attr=tag.attrs#属性值,字典
attr['class']#访问对应标签的属性
type(attr)#字典
tag.a.string#标签之间的信息
newsoup=BeautifulSoup('<b><!--This is a comment-->></b><p>
This is not a comment</p>','html.parser')
type(newsoup.b.string)#注释类型
type(newsoup.p.string)#文本类型
05-23 15:09