关于beautiful soup官方解释为:Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.
1.首先来看一下用该库解析下来的效果对比
这是官网上的源代码及其格式
当我运行一下代码时解析该网站时格式如下
可以看到其成树状结构,可以用soup.title,soup.p等语句进一步提取出所需标签里的内容(比用正则表达式快很多),如soup.title
2.接下来了解Beautiful Soup的具体用法
首先明白Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种: Tag
, NavigableString
, BeautifulSoup
, Comment
.(来自官方文档)
首先导入库
from bs4 import BeautifulSoup #导入库
创建对象
url = 'http://news.hitwh.edu.cn/'
resp = urllib.request.urlopen(url)
html = resp.read()
soup = BeautifulSoup(html, 'html.parser')
3.解析出的对象的类别
(1)tag。html标签,可以用soup.title,soup.p等方式提取出对应标签的内容
(2)NavigableString。
4.标准选择器
(1)find_all(),可以根据标签,属性,内容查找文档。如
print(soup.find_all("div", "menu"))
就能提取出类名为menu的div标签的内容
(2)find(),find_all()
返回的是所有元素列表,find()
返回单个元素
(3)css选择器
soup.select("title")
总结:总之BeautifulSoup是一个很好的用来解析html文档的库,可以较快地提取出我们想要的标签的内容及还要检索的东西,相对于正则表达式,极大的简化了处理过程