BeautifulSoup:只要进入标签内部,无论有多少个封闭标签

2024-02-04

我正在尝试从 中删除所有内部 html<p>使用 BeautifulSoup 的网页中的元素。有内部标签,但我不在乎,我只想获取内部文本。

例如,对于:

<p>Red</p>
<p><i>Blue</i></p>
<p>Yellow</p>
<p>Light <b>green</b></p>

我怎样才能提取:

Red
Blue
Yellow
Light green

Neither .string nor .contents[0]做我需要的。也没有.extract(),因为我不想提前指定内部标签 - 我想处理任何可能发生的情况。

BeautifulSoup 中是否有“仅获取可见 HTML”类型的方法?

- - 更新 - - -

根据建议,尝试:

soup = BeautifulSoup(open("test.html"))
p_tags = soup.findAll('p',text=True)
for i, p_tag in enumerate(p_tags): 
    print str(i) + p_tag

但这并没有帮助 - 它打印出:

0Red
1

2Blue
3

4Yellow
5

6Light 
7green
8

简短回答:soup.findAll(text=True)

这个已经回答过了,在 StackOverflow 上 https://stackoverflow.com/questions/1936466/beautifulsoup-grab-visible-webpage-text并在BeautifulSoup 文档 http://www.crummy.com/software/BeautifulSoup/documentation.html#Advanced%20Topics.

UPDATE:

为了澄清这一点,一段工作代码:

>>> txt = """\
... <p>Red</p>
... <p><i>Blue</i></p>
... <p>Yellow</p>
... <p>Light <b>green</b></p>
... """
>>> import BeautifulSoup
>>> BeautifulSoup.__version__
'3.0.7a'
>>> soup = BeautifulSoup.BeautifulSoup(txt)
>>> for node in soup.findAll('p'):
...     print ''.join(node.findAll(text=True))

Red
Blue
Yellow
Light green
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BeautifulSoup:只要进入标签内部,无论有多少个封闭标签 的相关文章

随机推荐

  • 扩展程序和小书签的内容安全策略

    Github有以下内容内容安全政策 https w3c github io webappsec specs content security policy 内容安全策略 默认 src 脚本 src asset cdn github com
  • 无法在 Yosemite DP 7 上安装 Cocoapods

    我在安装在单独分区上的 Yosemite DP 7 上安装 Cocoapods 时遇到问题 我已经尝试按照上找到的说明进行操作Cocoapods 与 Xcode 6 和 10 10 Yosemite https stackoverflow
  • 使用 JavaScript 获取 div id

    这是一些 HTML div class results div something div div something else div div blah blah blah div div etc div div 现在如果我可以使用 jQ
  • 从多个 hdf5 组创建数据集

    从多个 hdf5 组创建数据集 团体代码 np array hdf get all my groups 然后我添加了用于从组创建数据集的代码 with h5py File train h5 w as hdf hdf create datas
  • SQLite 内存数据库的优点[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我今天从一本关于 SQLite 的书中读到了关键字 memory 但它只说了它是什么 如何使用 而且解释太短了 所以我在这里搜索了更多
  • React js 日期选择器的多个实例

    如果我使用日期选择器的多个实例 我在更新反应日期选择器上的日期时遇到问题 日期选择器组件
  • 在Python中快速找到给定大小的所有连通子图的方法?

    注 快速解决方案在answer https stackoverflow com a 75751315 12842085然而 需要进一步改进速度 给定一个无向稀疏连接图G with n顶点 我正在寻找一种快速的方法来找到所有连接的子图G wi
  • 使用 SSH 的 Laravel MySql 数据库连接

    我有几个想要访问的远程数据库 但它们位于只能通过 SSH 使用密钥访问的服务器上 In Sequel Pro I connect to this remote DB something like this 我将如何配置我的 Laravel
  • 如何在 WordPress 中设置动态 `home` 和 `siteurl`?

    我使用动态配置多语言设置locale筛选 其中获取子域名来确定语言 function load custom language locale get the locale code according to the sub domain n
  • 用 python 生成/合成声音?

    是否有可能让 python 生成像正弦波这样的简单声音 有可用的模块吗 如果没有 您将如何创建自己的 另外 您是否需要某种主机环境让 python 运行才能播放声音 还是可以通过从终端进行调用来实现 如果答案取决于操作系统 我使用的是 Ma
  • 特征缩放后重新缩放,线性回归

    似乎是一个基本问题 但我需要在梯度下降线性回归的实现中使用特征缩放 获取每个特征值 减去平均值 然后除以标准差 完成后 我希望将权重和回归线重新调整为原始数据 我只使用一个特征 加上 y 轴截距项 使用缩放数据获得权重后 如何更改权重 以便
  • 使用 Wiremock 进行存根 - WithBodyFile 位置除 _files 之外

    Wiremock 文档指出 在中指定的文件的位置与正文文件应该在src 测试 资源 files 我想要文件src test resources Testing ABC Testcase2 myfile xml 有什么办法可以实现这个目标吗
  • 幻灯片内容/页面过渡

    我正在尝试重新创建就像他们在 gimmebar com 上克服的那样 https gimmebar com collection 4ecd439c2f0aaad734000022 front end styleguides 单击图像时 当前
  • 查找 Python 模块的源代码

    我使用 PyCharm 作为我的编辑器 似乎它的表现不佳某些子模块 https youtrack jetbrains com issue PY 13124 namely numpy random normal 不要灰心 我找到了哪里nump
  • 自定义会员资格提供程序中的 Unity 依赖项注入

    我有 ASP NET MVC3 项目 我想在其中使用自定义成员资格提供程序 我还想使用 Unity 来解决我的依赖注入问题 这是来自 Global asax 的代码 protected void Application Start Area
  • android: singleline = true 不适用于 edittext

    我想将编辑文本条目限制为一行 但是当我添加该行时android singleline true 提示消失 输入26个字符后光标向下 这是我的 XML 代码
  • AngularJS 指令从控制器访问属性

    我正在尝试访问控制器函数中指令的属性 然而 当我访问它时 它是未定义的 我注意到如果我做一个简单的计时器它就可以工作 有没有办法仅在指令及其范围准备好并设置为使用之后才执行代码 我摆弄了它 确保您的控制台已打开 http jsfiddle
  • 将值从一种形式传递到另一种形式 (C#)

    我的程序中有一个搜索表单 当用户双击搜索表单上的 dgv 的 单元格时 我希望程序关闭该表单并跳转到主表单上的项目 我通过使用唯一的 ID 来标识每个项目来做到这一点 我正在尝试将行 id 的值传递给其他表单 问题是 它说我每次都传递零值
  • 错误:获取临时地址 [-fpermissive]

    我已经研究了这个问题几个小时 但毫无结果 基本上我有 struct rectangle int x y w h rectangle player RegionCoordinates Region Coord rectangle temp t
  • BeautifulSoup:只要进入标签内部,无论有多少个封闭标签

    我正在尝试从 中删除所有内部 html p 使用 BeautifulSoup 的网页中的元素 有内部标签 但我不在乎 我只想获取内部文本 例如 对于 p p Red p p i Blue i p p Yellow p p Light b g