python库之BeautifulSoup使用教程

安装BeautifulSoup

bash 复制代码
pip install beautifulsoup4

基本使用

python 复制代码
from bs4 import BeautifulSoup
res = requests.get(url)
soup = BeautifulSoup(res.text, 'lxml')

删除标签、属性

python 复制代码
# 删除标签
for i in ['style','video']:
    [s.extract() for s in soup(i)]

# 删除标签的属性
for element in soup.select('img'):
    del element['srcset']
for element in soup.select('a'):
    del element['href']

# 删除标签为div,属性class为abc的所有标签
remove_list = soup.find_all('div', attrs={'class': 'abc'})
[i.extract() for i in remove_list]

寻找标签

python 复制代码
div1 = soup.find('div', id='me')     # 只匹配第一个
div1 = soup.find_all('div', attrs={'class': 'abc'})     # 匹配出所有

删除标签,但保留其子标签且位置不变

python 复制代码
from bs4 import BeautifulSoup

html = '''
<html>
  <body>
    <div id="container">
    <p>This is a one</p>
      <div id="remove-me">
        <span>Child 1<a>111</a></span>
        <span>Child 2</span>
      </div>
      <p>This is a two</p>
    </div>
  </body>
</html>
'''
soup = BeautifulSoup(html, 'lxml')
# 找到要删除的 div 标签
div_to_remove = soup.find('div', id='remove-me')
if div_to_remove:
    # 获取父标签
    parent = div_to_remove.parent
    siblings = parent.contents
    position = siblings.index(div_to_remove)
    # 将子标签移动到父标签中
    while div_to_remove.contents:
        parent.insert(position,div_to_remove.contents[-1])
    # 删除原始标签
    div_to_remove.decompose()
# 打印结果
print(soup.prettify())
相关推荐
jingling55512 小时前
vue | 在 Vue 3 项目中集成高德地图(AMap)
前端·javascript·vue.js
油丶酸萝卜别吃12 小时前
Vue3 中如何在 setup 语法糖下,通过 Layer 弹窗组件弹出自定义 Vue 组件?
前端·vue.js·arcgis
DanCheng-studio17 小时前
网安毕业设计简单的方向答疑
python·毕业设计·毕设
轻抚酸~17 小时前
KNN(K近邻算法)-python实现
python·算法·近邻算法
独行soc19 小时前
2025年渗透测试面试题总结-264(题目+回答)
网络·python·安全·web安全·网络安全·渗透测试·安全狮
J***Q29219 小时前
Vue数据可视化
前端·vue.js·信息可视化
汤姆yu19 小时前
基于python的外卖配送及数据分析系统
开发语言·python·外卖分析
如何原谅奋力过但无声20 小时前
TensorFlow 1.x常用函数总结(持续更新)
人工智能·python·tensorflow
翔云 OCR API20 小时前
人脸识别API开发者对接代码示例
开发语言·人工智能·python·计算机视觉·ocr
ttod_qzstudio20 小时前
深入理解 Vue 3 的 h 函数:构建动态 UI 的利器
前端·vue.js