Beautiful Soup库的用法(含实例)

本文介绍了Beautiful Soup库的安装、使用及解析器选择。详细讲解了Beautiful Soup类的基本元素,包括HTML的下行、上行和平行遍历方法,以及内容查找策略。并提供了具体的‘中国大学排名定向爬虫’实例,演示了库的应用。
摘要由CSDN通过智能技术生成
Beautiful Soup库的安装

在命令台执行pip insatll beautifulsoup4,可以使用镜像模式下载。

Beautiful Soup库的使用
from bs4 import BeautifulSoup
soup = BeautifulSoup('<p>data</p>','html.parser')

data为解析的内容,html.parser为解析器。

Beautiful Soup库的解析器
解析器 使用方法 条件
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
Beautiful Soup类的基本元素
基本元素 说明
Tag 标签,最基本的信息组织单元,分别用<>和</>标明开头和结尾
Name 标签的名字,<p>…</p>的名字是’p’,格式:<tag>.name
Attributes 标签的属性ÿ
当我们爬取网页时,往往会得到一些HTML代码,包了很多我们并不需要的标签和内容。这时候我们可以使用Beautiful Soup来清洗数据。 例如,我们爬取了一个网页,并得到了如下的HTML代码: ```html <!DOCTYPE html> <html> <head> <title>示例网页</title> </head> <body> <h1>欢迎来到示例网页</h1> <p>这是一个示例网页,用于演示Beautiful Soup用法。</p> <div id="content"> <p>这是网页中的一段内容。</p> <ul> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> </ul> </div> <div id="footer"> <p>版权所有 © 示例网页</p> </div> </body> </html> ``` 我们可以使用如下的代码来清洗数据: ```python from bs4 import BeautifulSoup html = """ <!DOCTYPE html> <html> <head> <title>示例网页</title> </head> <body> <h1>欢迎来到示例网页</h1> <p>这是一个示例网页,用于演示Beautiful Soup用法。</p> <div id="content"> <p>这是网页中的一段内容。</p> <ul> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> </ul> </div> <div id="footer"> <p>版权所有 © 示例网页</p> </div> </body> </html> """ soup = BeautifulSoup(html, 'html.parser') # 去除所有标签 clean_text = soup.get_text() # 去除指定标签 for tag in soup(['head', 'ul']): tag.decompose() # 去除指定属性 for tag in soup.find_all(attrs={'id': 'footer'}): del tag['id'] print(clean_text) print(soup.prettify()) ``` 输出结果如下: ``` 欢迎来到示例网页 这是一个示例网页,用于演示Beautiful Soup用法。 这是网页中的一段内容。 列表项1 列表项2 列表项3 版权所有 © 示例网页 <!DOCTYPE html> <html> <head> <title> 示例网页 </title> </head> <body> <h1> 欢迎来到示例网页 </h1> <p> 这是一个示例网页,用于演示Beautiful Soup用法。 </p> <div id="content"> <p> 这是网页中的一段内容。 </p> </div> <div> <p> 版权所有 © 示例网页 </p> </div> </body> </html> ``` 可以看到,我们成功地去除了HTML标签,并且过滤掉了不需要的数据,只保留了我们需要的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唱戏先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值