如何使用 python 的 beautiful soup 获取标签之间的内容及其以 HTML 结尾的内容?

2024-03-16

我有一个 HTML 行,如下所示:

<span class="cd__headline-text">Is this model too thin for Yves Saint Laurent? </span>

我想提取标题,即“这个模型对于 Yves Saint Laurent 来说太薄了吗?”从这个 HTML 行。我怎样才能获得之间的任何内容

<tag> and </tag>.

我对正则表达式不太熟悉。


如果你的元素包含only文本,使用.string属性 http://www.crummy.com/software/BeautifulSoup/bs4/doc/#string:

headline = soup.find(class_='cd__headline-text')
print(headline.string)

如果包含其他标签,您可以获取当前元素中包含的所有文本以及进一步的文本,也可以仅获取当前元素中的特定文本。

The element.get_text()功能 http://www.crummy.com/software/BeautifulSoup/bs4/doc/#get-text将递归并收集元素和子元素中的所有字符串,将它们与您选择的字符串(默认为空字符串)连接起来,并删除或不删除空格。

要仅获取特定字符串,您可以迭代.strings or .stripped_strings发电机 http://www.crummy.com/software/BeautifulSoup/bs4/doc/#strings-and-stripped-strings,或使用元素内容 http://www.crummy.com/software/BeautifulSoup/bs4/doc/#contents-and-children访问所有包含的元素,然后挑选出NavigableString type.

使用您的示例进行演示:

>>> from bs4 import BeautifulSoup
>>> markup = '<span class="cd__headline-text">Is this model too thin for Yves Saint Laurent? </span>'
>>> soup = BeautifulSoup(markup)
>>> headline = soup.find(class_='cd__headline-text')
>>> print headline.string
Is this model too thin for Yves Saint Laurent? 
>>> print list(headline.strings)
[u'Is this model too thin for Yves Saint Laurent? ']
>>> print list(headline.stripped_strings)
[u'Is this model too thin for Yves Saint Laurent?']
>>> print headline.get_text()
Is this model too thin for Yves Saint Laurent? 
>>> print headline.get_text(strip=True)
Is this model too thin for Yves Saint Laurent?

并添加了一个附加元素:

>>> markup = '<span class="cd__headline-text">Is this model <em>too thin</em> for Yves Saint Laurent? </span>'
>>> soup = BeautifulSoup(markup)
>>> headline = soup.find(class_='cd__headline-text')
>>> headline.string is None
True
>>> print list(headline.strings)
[u'Is this model ', u'too thin', u' for Yves Saint Laurent? ']
>>> print list(headline.stripped_strings)
[u'Is this model', u'too thin', u'for Yves Saint Laurent?']
>>> print headline.get_text()
Is this model too thin for Yves Saint Laurent? 
>>> print headline.get_text(' - ', strip=True)
Is this model - too thin - for Yves Saint Laurent?
>>> headline.contents
[u'Is this model ', <em>too thin</em>, u' for Yves Saint Laurent? ']
>>> from bs4 import NavigableString
>>> [el for el in headline.children if isinstance(el, NavigableString)]
[u'Is this model ', u' for Yves Saint Laurent? ']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 python 的 beautiful soup 获取标签之间的内容及其以 HTML 结尾的内容? 的相关文章

  • 如何在 PyCharm 中设置运行配置的默认工作目录

    当我想运行众多 python 脚本之一时 我点击运行 这会创建一个新的运行配置 该配置的工作目录是 python 脚本文件所在的文件夹 相反 它应该从项目范围的固定文件夹运行 我想以某种方式进行设置 但我真的不明白为什么 这有点奇怪 因为我
  • Conda 无法在 Powershell 中激活

    我已经在我的 Windows 10 笔记本电脑上安装了 anaconda 我正在尝试激活名为的Python环境pyenv 首先 我检查conda env list在我的笔记本电脑中 这是 powershell 上的输出 PS C Users
  • 如何在 Python 中获得两个变量的逻辑异或?

    你如何获得逻辑异或 http en wikipedia org wiki Exclusive orPython 中的两个变量 例如 我有两个希望是字符串的变量 我想测试其中只有一个包含 True 值 不是 None 或空字符串 str1 r
  • uwsgi + Django REST框架:空闲时间后很少有缓慢的请求

    我正在运行 Django REST 框架 白天每分钟的请求率相当低 我注意到一个我无法解释或重现的问题 每天 在夜间或清晨 当我的 RPM 接近于零时 我会收到 1 10 个超慢的请求 我的平均响应时间100 到 200 毫秒之间 但是这个
  • pygraphviz,导入错误:未定义的符号:Agundirected

    import pygraphviz Traceback most recent call last File
  • 属性错误:未找到下层;在 scikit-learn 中使用带有 CountVectorizer 的 Pipeline

    我有一个这样的语料库 X train this is an dummy example in reality this line is very long here is a last text in the training set 和一
  • CodingBat sum67:为什么这个解决方案是错误的?

    我正在解决以下codingbat问题 返回数组中数字的总和 但忽略以 6 开头并延伸到下一个 7 的数字部分 每个 6 后面至少有一个 7 如果没有数字则返回 0 sum67 1 2 2 5 sum67 1 2 2 6 99 99 7 5
  • Python 包?

    好吧 我认为无论我做错了什么 它可能都是显而易见的 但我无法弄清楚 我已经阅读并重新阅读了有关包的教程部分 我唯一能想到的是这不起作用 因为我直接执行它 这是目录设置 eulerproject init py euler1 py euler
  • 使用 theano 进行多处理

    我正在尝试将 theano 与 cpu 多处理和神经网络库 Keras 结合使用 I use device gpu标记并加载 keras 模型 然后 为了提取超过一百万张图像的特征 我使用多处理池 该函数看起来像这样 from keras
  • 解析器生成

    我正在做一个项目软件抄袭检测 我打算用C语言来做这件事 因为我应该创建一个令牌生成器和一个解析器 但我不知道从哪里开始 任何人都可以帮助我解决这个问题 我创建了一个令牌数据库 并将令牌与我的程序分开 接下来我想做的就是比较两个程序以查明它是
  • set() 可以在 Python 进程之间共享吗?

    我正在 Python 2 7 中使用多重处理来处理非常大的数据集 当每个进程运行时 它会将整数添加到共享的 mp Manager Queue 中 但前提是其他进程尚未添加相同的整数 由于您无法对队列进行 in 式成员资格测试 因此我这样做的
  • cx_freeze:QODBC 驱动程序未加载

    我的 python 应用程序如下所示 test py from PyQt4 import QtCore from PyQt4 import QtGui from PyQt4 import QtSql import sys import at
  • Python Pandas groupby、排名,然后根据自定义排名分配值

    问题设置 大熊猫数据框 df pd DataFrame Group A A A A A A A A A Subgroup Group 1 Group 1 Group 1 Group 1 Group 1 Group 1 Group 2 Gro
  • 为线条指定颜色

    我试图在 matplotlib 中绘制可变数量的行 其中 X Y 数据和颜色存储在 numpy 数组中 如下所示 有没有办法将颜色数组传递到绘图函数中 这样我就不必采取额外的步骤来单独为每条线分配颜色 我是否应该将 RGB 颜色数组转换为另
  • Seaborn 条形图条之间没有空格

    我使用下面的代码创建了一个 Seaborn 条形图 它来自https www machinelearningplus com plots top 50 matplotlib visualizations the master plots p
  • Python Pandas:将参数传递给 agg() 中的函数

    我试图通过使用不同类型的函数和参数值来减少 pandas 数据框中的数据 但是 我无法更改聚合函数中的默认参数 这是一个例子 gt gt gt df pd DataFrame x 1 np nan 2 1 y a a b b gt gt g
  • 如何检查两个数据集的匹配列之间的相关性?

    如果我们有数据集 import pandas as pd a pd DataFrame A 34 12 78 84 26 B 54 87 35 25 82 C 56 78 0 14 13 D 0 23 72 56 14 E 78 12 31
  • Python 中的数据可用性图表

    我想知道Python是否有一些东西可以绘制具有多个变量的时间序列的数据可用性 下面显示了一个示例 取自Visavail js 时间数据可用性图表 https github com flrs visavail 1 description 以下
  • PyTorch 中的交叉熵

    交叉熵公式 但为什么下面给出loss 0 7437代替loss 0 since 1 log 1 0 import torch import torch nn as nn from torch autograd import Variable
  • 在Python中:检查文件修改时间是否早于特定日期时间

    我用 C 编写了以下代码来检查文件是否已过期 DateTime lastTimeModified file getLastTimeModified if lastTimeModified HasValue File does not exi

随机推荐

  • 恢复用python删除的文件

    所以 我使用 python 删除了一个文件 我在回收箱中找不到它 有什么办法我可以undo它或其他东西 提前致谢 编辑 我用过os remove 我尝试过Recuva 但似乎没有发现任何东西 我做了深入的搜索 如果你用过os remove并
  • 使用 4 个线程获取/释放语义

    我目前正在阅读 Anthony Williams 撰写的 C Concurrency in Action 他的清单之一显示了这段代码 他指出以下断言z 0可以开火 include
  • 我应该使用 java.text.MessageFormat 来处理没有占位符的本地化消息吗?

    我们正在本地化在 Java 5 上运行的 Web 应用程序的用户界面文本 并且对于如何输出在属性文件中定义的消息 使用的类型 遇到了困境 java util Properties http java sun com j2se 1 5 0 d
  • 宏有什么好的用途吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 据我所知 宏在编译器正确看到程序文本之前就重新排列了它 因此可能会导致问题 我很少在 C 代码中看到它们 大部分是在 C 代码中 我所
  • SwiftUI 工作表显示包含错误数据的工作表

    我有一个显示 1 2 和 3 的列表 点击文本时 应用程序会打开一张包含点击数字的工作表 但是 如果我点击第二行或第三行中的文本 工作表中显示的数字仍然是 1 我做错了什么 import SwiftUI struct ContentView
  • Mac OS 登录项是否带有参数?

    在 Mac OS 中 我创建了一些 AppleScript 来添加和删除启动应用程序 帐户 系统窗格下的 登录项 bin bash usr bin osascript e tell application System Events to
  • 在最后一次出现的字符处拆分然后连接

    我想分割一个attribute在最后一次出现字符时 添加一个字符串并将数组重新连接在一起 这是一个简化的demo https jsfiddle net Ldjoqtk1 1 在演示中我想拆分src最后一次出现的属性 然后添加 fx to t
  • Node.js 生成的 csv 文件显示英镑符号 (£)

    我正在用这个json2scv https github com zemirco json2csv包解析我的数据 示例 json 数据在下面的代码中描述 我正在尝试使用以下代码在我的 Node js 应用程序中生成 CSV 文件 如果我在 E
  • jquery 对话框打开时窗口向上滚动

    我正在尝试使用 jquery 1 4 和 jquery ui 1 8rc3 custom js 打开模态 jquery 对话框 在所有浏览器中 对话框打开都没有问题 但在 IE 7 和 6 中 对话框打开后 窗口会自行滚动到底部 我尝试将窗
  • 如何将 Selenium 输出导出到 PHP?

    Firefox 的 Selenium IDE 似乎没有默认导出到 PHP 我需要 Selenium 才能将其输出转换为 PHP 以在 Drupal 中使用 如何安装PHP语言导出才能达到这个目标 现在它是 mozilla 中的一个附加组件
  • 显示 GDB 中当前的汇编指令

    我正在 GDB 中进行一些汇编级调试 有没有办法让 GDB 以与显示当前源代码行相同的方式显示当前的汇编指令 每个命令后的默认输出如下所示 0x0001433f 990 Foo bar p 这给了我当前指令的地址 但我必须继续参考disas
  • Bokeh HTML 模板格式化程序不起作用

    请看一下页面 https docs bokeh org en latest docs reference models widgets tables html bokeh models widgets tables HTMLTemplate
  • Express 路由器参数验证

    Express 4x api 文档声称您可以将正则表达式作为第二个参数传递给router param http expressjs com 4x api html router param为了验证参数 该方法现在可用于有效验证参数 以及 可
  • Unity如何在玩家移动时让我的枪停止射击?

    I am making a gun shooting script but I do not know how to disable shooting when the player is running Can someone help
  • fancyBox2:幻灯片按钮和图像边框

    是否可以只有幻灯片开 关按钮和位置 标题区域内的某个地方 我想要这个的原因是 因为按钮栏缩小了显示图像的大小 我只想有这个选项 打开或关闭幻灯片 导航通过正常的左右方向完成 单击图像 是否可以减少图像周围的边框 尤其是底部边框 我尝试了填充
  • 通过 TeamViewer 连接时全屏 WPF 应用程序崩溃

    我创建了一个运行相当稳定的 WPF 应用程序 但有一个问题我无法解决 当我通过 TeamViewer 版本 11 连接到正在运行 WPF 应用程序 全屏模式 的平板电脑时 应用程序崩溃 当我结束远程连接时也会发生同样的情况 我得到以下异常
  • Ubuntu 14.02 上的 Tkinter 将宽度报告为两个显示器的总和

    我在新的 Ubuntu 14 02 机器上有两个显示器 一台显示器为 1024X768 VGA 第二台显示器是 1920X1080 HDMI 无论我做什么 root winfo screenwidth 报告 2944 两个显示器的总和 如果
  • 如何使用 Spring Security 保护 Vaadin 流应用程序

    我正在尝试将 vaadin 10 与 spring security 集成 使用 vaadin 提供的 spring 项目库 但我对它们如何准确交互感到困惑 如果我转到受保护的网址 在本例中为 about 直接在浏览器中键入它 则会显示登录
  • 如何使用jquery仅从文本中获取数字

    我只想获取数字 123 而不是文本 确认 这是我的代码 p 123confirm p 我认为 RegExp 是个好主意 var sd this text replace 0 9 gi Replace everything that is n
  • 如何使用 python 的 beautiful soup 获取标签之间的内容及其以 HTML 结尾的内容?

    我有一个 HTML 行 如下所示 span class cd headline text Is this model too thin for Yves Saint Laurent span 我想提取标题 即 这个模型对于 Yves Sai