转载请注明出处:

  BeautifulSoup是一个用于解析HTML和XML文档的Python库,它提供了一些简单但强大的API,让你可以从文档中提取数据。以下是一些BeautifulSoup的主要特性和功能:

  • 解析HTML和XML文档:BeautifulSoup可以解析HTML和XML文档,并创建一个BeautifulSoup对象,这个对象表示整个文档。可以使用这个对象来搜索和修改文档的元素。
  • 导航文档树:BeautifulSoup提供了一些方法,让你可以在文档树中导航。例如,可以使用find方法来搜索文档树中的元素,使用find_all方法来搜索所有匹配的元素,使用parentchildrendescendants等属性来访问元素的父元素,子元素和后代元素。
  • 搜索文档树:BeautifulSoup提供了一些方法,可以搜索文档树中的元素。例如,可以使用find方法来搜索文档树中的第一个匹配的元素,使用find_all方法来搜索所有匹配的元素,使用select方法来使用CSS选择器来搜索元素。
  • 修改文档树:BeautifulSoup提供了一些方法,可以修改文档树中的元素。例如,可以使用appendprependinsert_beforeinsert_after方法来添加新的元素,使用replace_with方法来替换元素,使用extract方法来移除元素。

  使用BeautifulSoup的示例:

from bs4 import BeautifulSoup

# 解析HTML文档
html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p> <p class="story">...</p>
"""
soup = BeautifulSoup(html_doc, 'html.parser') # 导航文档树
p = soup.find('p', class_='title')
print(p.name) # 输出: p
print(p.string) # 输出: The Dormouse's story # 搜索文档树
links = soup.find_all('a')
for link in links:
print(link.get('href')) # 输出: http://example.com/elsie, http://example.com/lacie, http://example.com/tillie # 修改文档树
p.string.replace_with('A new title')
print(p.string) # 输出: A new title

  搜索相邻的元素标签值:

def job():

    soup = BeautifulSoup(html_doc, 'html.parser')
target_a = soup.find('a', string='Elsie')
print('target_a', target_a.text)
if target_a is not None:
target_a_next = target_a.find_next('a')
print(target_a_next.text)
else:
print("No matching element found.") job()

python中BeautifulSoup库使用小结的更多相关文章

  1. python中BeautifulSoup库中find函数

    http://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html#contents 简单的用法: find(name, at ...

  2. python中requests库使用方法详解

    目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...

  3. Python中第三方库Requests库的高级用法详解

    Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...

  4. python之BeautifulSoup库

    1. BeautifulSoup库简介 和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据.lxml 只会局部遍历 ...

  5. Python爬虫-- BeautifulSoup库

    BeautifulSoup库 beautifulsoup就是一个非常强大的工具,爬虫利器.一个灵活又方便的网页解析库,处理高效,支持多种解析器.利用它就不用编写正则表达式也能方便的实现网页信息的抓取 ...

  6. Python中cv2库和matplotlib库色彩空间排布不一致

    今天在python中读如图片时发现以下问题: 1.在from matplotlib import pyplot as plt之后,再import cv2 cv2.imshow()不能正常使用,还不知道 ...

  7. Python 中拼音库 PyPinyin 的用法【华为云技术分享】

    [摘要] 最近碰到了一个问题,项目中很多文件都是接手过来的中文命名的一些素材,结果在部署的时候文件名全都乱码了,导致项目无法正常运行. 后来请教了一位大佬怎么解决文件名乱码的问题,他说这个需要正面解决 ...

  8. python中pyperclip库的功能

    python3中pyperclip库的功能 作用就是复制.粘贴 例子 import pyperclip pyperclip.copy('Hello world!') pyperclip.paste() ...

  9. Python中msgpack库的使用

    msgpack用起来像json,但是却比json快,并且序列化以后的数据长度更小,言外之意,使用msgpack不仅序列化和反序列化的速度快,数据传输量也比json格式小,msgpack同样支持多种语言 ...

  10. 关于python中lambda 函数使用小结

    例子: 如果定义普通函数,一般都是这样写: def:ds(x): return 2*x+1 调用即: ds(5) 如果用lambda函数就是这么写,就是一句话: g =lambda x:2*x+1 调 ...

随机推荐

  1. 【UniApp】-uni-app-项目实战页面布局(苹果计算器)

    前言 经过前面的文章介绍,基本上 UniApp 的内容就介绍完毕了 那么从本文开始,我们就开始进行一个项目的实战 这次做的项目是苹果计算器,这个项目的难度不是很大,但是也不是很简单,适合练手 创建项目 ...

  2. 【UniApp】-uni-app-处理项目输入数据(苹果计算器)

    前言 上一篇文章完成了项目的基本布局,这一篇文章我们来处理一下项目的输入数据 项目的输入数据主要是通过按键来输入的,所以我们需要对按键进行处理 那么我们就来看一下 uni-app-处理项目输入数据 步 ...

  3. 2023总结与展望--Empirefree

    今年一篇博客都没写过了,好像完全在忙在工作和生活上面了,珍惜自我,保持热情,2024对我好点 目录 1. 年终总结 1.1.学习工作计划 1.2. 生活计划 1.3 个人总结 2. 未来展望 1. 年 ...

  4. STM32CubeMX教程1 工程建立

    1.准备材料 开发板(STM32F407G-DISC1) ST-LINK/V2驱动 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) 2 ...

  5. 确定了-C#是2023年度的编程语言!

    大家好,我是沙漠尽头的狼.在朋友圈看到桂素伟大佬发的喜讯截图,站长赶紧翻译向大家报喜,确定了-C#是2023年度的编程语言! 在TIOBE指数的历史上,C#首次获得了年度编程语言的奖项.祝贺!二十多年 ...

  6. Spring Boot中设置定时发送邮件任务

    1:浅谈发送邮箱: 邮箱验证是一个很常见的功能了,基本上每个网站都会用的到, java也有专门的jar来处理邮件发送等服务 2:学过javaweb大家都对发送邮箱上不是很陌生了吧 但之前发送邮箱的步骤 ...

  7. st_geometry、st_transform配置及问题汇总

    1.文件配置修改 路径上一定要使用双斜杠 2.使用sde账号登录,执行以下SQL,路径按照实际环境填写. select * from user_libraries; create or replace ...

  8. Llama2-Chinese项目:6-模型评测

      测试问题筛选自AtomBulb[1],共95个测试问题,包含:通用知识.语言理解.创作能力.逻辑推理.代码编程.工作技能.使用工具.人格特征八个大的类别. 1.测试中的Prompt   例如对于问 ...

  9. 记录:idea git push失败问题

    问题描述: 重复弹出密码登录框,但是push失败 解决,用ssh的方式登录 1.生成ssh 配置用户名 git config --global user.name "tmqq2333&quo ...

  10. 即使不会node.js,拖拽就可完成数据的可视化展示

    摘要:node-red是一款基于Node.js的开源可视化界面开发工具,不需要掌握node.js而通过拖拽即可完成数据的可视化展示. 1.首先看一下node-red对数据的渲染效果 你可能认为,必须熟 ...