跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Python--BeautifulSoup库的介绍

beautiful soup parses anything you give it, and does the tree traversal stuff for you. BeautifulSoup库是解析、遍历、维护 “标签树” 的功能库 (遍历,是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问)。 BeautifulSoup库我们常称之为bs4,导入该库为:from bs4 import BeautifulSoup。其中,import BeautifulSoup即主要用bs4中的BeautifulSoup类。 bs4库解析器 立即学习 “ Python免费学习笔记(深入) ”; BeautifulSoup类的基本元素
1 import requests 2 from bs4 import BeautifulSoup 3 4 res = requests.get('') 5 soup = BeautifulSoup(res.text,'lxml') 6 print(soup.a) 7 # 任何存在于HTML语法中的标签都可以用soup.访问获得,当HTML文档中存在多个相同对应内容时,soup.返回第一个。 8 9 print(soup.a.name)10 # 每个都有自己的名字,可以通过.name获取,字符串类型11 12 print(soup.a.attrs)13 print(soup.a.attrs['class'])14 # 一个可能有一个或多个属性,是字典类型15 16 print(soup.a.string)17 # .string可以取到标签内非属性字符串18 19 soup1 = BeautifulSoup('

','lxml')20 print(soup1.p.string)21 print(type(soup1.p.string))22 # comment是一种特殊类型,也可以通过.string取到
运行结果: 登录 a {'href': '', 'class': ['no-login']} ['no-login'] 登录 这里是注释 bs4库的HTML内容遍历 HTML的基本结构 标签树的下行遍历 Python 3.14.3 微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。 下载 其中,BeautifulSoup类型是标签树的根节点。
1 # 遍历儿子节点2 for child in soup.body.children:3 print(child.name)4 5 # 遍历子孙节点6 for child in soup.body.descendants:7 print(child.name)
标签树的上行遍历
1 # 遍历所有先辈节点时,包括soup本身,所以要if...else...判断2 for parent in soup.a.parents:3 if parent is None:4 print(parent)5 else:6 print(parent.name)
运行结果: div div body html [document] 标签树的平行遍历
1 # 遍历后续节点2 for sibling in soup.a.next_sibling:3 print(sibling)4 5 # 遍历前续节点6 for sibling in soup.a.previous_sibling:7 print(sibling)
bs4库的prettify()方法 prettify()方法可以将代码格式搞的标准一些,用soup.prettify()表示。在PyCharm中,用print(soup.prettify())来输出。 操作环境:Mac,Python 3.6,PyCharm 2016.2 参考资料:中国大学MOOC课程《Python网络爬虫与信息提取》

相关文章