BeautifulSoup的简单用法

本文介绍了如何使用Python的BeautifulSoup库来解析HTML文档,提取文本内容,并去除指定标签以防止XSS攻击。通过实例展示了从HTML字符串中获取纯文本的方法。

官方文档加载比较慢(估计是我党的原因)

https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#find-parents-find-parent

1、下载BeautifulSoup4

2、导入模块

from bs4 import BeautifulSoup

3、使用BeautifulSoup获取标签中的text

from bs4 import BeautifulSoup
s1 = """
<p class="ql-align-justify"> 在纪录表上,火箭少女中包括孟美岐、吴宣仪、杨超越、段奥娟、Yamy、赖美云、张紫宁及李紫婷,在身高、体重的字段上都有至少一项的数据,不过除了赖美云之外,其他像孟美岐、吴宣仪等人的身高都比官方公布的数字矮1到3厘米,像杨超越官方数字是168厘米,但实际身高是166.5厘米。</p>
"""
bs = BeautifulSoup(s1, "html.parser")
print(bs.text)

目的:从HTML文件提取文本

4、作用:去除指定的标签,目的:富文本框防止XSS攻击

from bs4 import BeautifulSoup
    bs = BeautifulSoup(s1, "html.parser")
    ret = bs.text
    # print(ret)
    ret = bs.find_all()
    print(ret)
    for tag in bs.find_all():
        print(tag.name)
        if tag.name == "script":
            tag.decompose()

 

转载于:https://www.cnblogs.com/wt7018/p/11361183.html

### BeautifulSoup 使用指南 BeautifulSoup 是一个强大的 Python 库,可以用来解析 HTML 和 XML 文件,并从中提取所需的数据。以下是其主要功能和使用方法的详细介绍。 #### 1. **创建 BeautifulSoup 对象** 要使用 BeautifulSoup 解析文档,首先需要导入模块并将目标文档传递给它的构造函数。可以传入字符串或者文件对象作为输入参数[^1]。 ```python from bs4 import BeautifulSoup # 创建一个简单的 HTML 文档字符串 html_doc = "<html><body><p>data</p></body></html>" soup = BeautifulSoup(html_doc, "html.parser") print(soup) # 打印整个解析后的结构树 ``` 上面代码展示了如何利用 `BeautifulSoup` 构造器加载一段 HTML 片段并将其转化为可操作的对象模型[^1]。 --- #### 2. **基本导航与查询** ##### (1) 导航标签层次关系 一旦有了 `soup` 对象,就可以像遍历 DOM 树一样访问各个节点之间的父子兄弟关系[^2]。 - 获取根元素 `<html>` 下的第一个子节点: ```python root_child = soup.html.body.p print(root_child) # 输出:<p>data</p> ``` - 查找所有特定名称的标签(如所有的 `<p>` 标签): ```python paragraphs = soup('p') print(paragraphs) # 输出:[<p>data</p>] ``` 以上示例说明了通过直接调用或索引来定位单个或多组匹配项的方法[^1]。 --- ##### (3) 基于正则表达式的高级搜索 除了按固定名字检索外,还可以借助标准库中的 re 模块执行更灵活模式匹配的任务[^3]。 ```python import re from bs4 import BeautifulSoup html_content = '<h1>欢迎来到 BeautifulSoup4 教程练习网站</h1>' soup = BeautifulSoup(html_content, 'html.parser') result = soup.find(re.compile(r'.*1')) print(result) # 输出:<h1>欢迎来到 BeautifulSoup4 教程练习网站</h1> ``` 在这里我们定义了一个模糊条件去寻找任何包含数字 “1” 的头部标题级别标签[h1-h6],最终成功找到了符合条件的目标<h1>. --- #### 3. **结合 Requests 提升抓取能力** 通常情况下单独依靠静态页面分析难以满足动态更新频繁变化的实际应用场景需求因此推荐搭配第三方扩展包requests共同完成更加复杂任务流程设计[^4]. 下面给出了一种典型组合方案示范: ```python import requests from bs4 import BeautifulSoup url = 'http://example.com/' response = requests.get(url) content = response.content soup = BeautifulSoup(content, 'html.parser') titles = soup.find_all('title') for title in titles: print(title.string.strip()) ``` 上述脚本先请求远程地址获取原始HTML内容再交由BS处理最后筛选出感兴趣的部分呈现出来. --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值