lxml classic:获取除嵌套标签之外的文本内容?

2023-12-07

这一定是绝对的经典,但我在这里找不到答案。我正在使用 lxml cssselect 解析以下标签:

<li><a href="/stations/1"><span class="num">3</span> Detroit</a></li>

我想获取的内容<li> tag without的内容<span> tag.

目前我有:

stop_list = doc.cssselect('ol#stations li a')
start = stop_list[0].text_content().strip()

但这给了我3 Detroit。我怎样才能得到Detroit?


对于你的例子,我认为使用 XPath 比 CSS 更干净、更容易:

>>> xml = '<li><a href="/stations/1"><span class="num">3</span> Detroit</a></li>'
>>> root = etree.fromstring(xml)
>>> print( root.xpath('/li/a/text()'))
[' Detroit']

>>> xml = '<li><a href="/stations/1">I <span>FooBar!</span> love <span class="num">3</span> Detroit</a></li>'
>>> root = etree.fromstring(xml)
>>> print( root.xpath('/li/a/text()'))
['I ', ' love ', ' Detroit']

>>> ' '.join([x.strip() for x in root.xpath('/li/a/text()')])
'I love Detroit'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lxml classic:获取除嵌套标签之外的文本内容? 的相关文章

随机推荐

  • void ** 和 void * 的编译警告

    我有一个关于void and void 我知道这是一个老问题 并且之前在 stackoverflow 中已经被问过 某种程度上 所以问题如下 当我在 ubuntu 10 10 下使用 gcc 4 4 3 编译此代码时 收到以下警告 zz c
  • Android:使用捆绑包在片段之间传递数据

    我正在尝试使用捆绑包在不同活动的片段之间传递数据 我有两个片段 片段 A 附加在活动 A 上 片段 B 附加到另一个活动 活动 B 我需要将编辑文本字符串从片段 A 传递到片段 B 我如何使用捆绑包来实现这一点 有人可以给我一个 kotli
  • CSS背景拉伸到窗口底部?

    我正在帮助重新设计一个网站www liveatsheastadium com test 我试图找出一种方法来获得透明背景 使用background rgba 属性 来拉伸页面的整个高度 无论分辨率如何 我尝试将容器 html 和正文高度设置
  • 在 PowerShell 中设置表格格式以导出为 CSV

    我严重睡眠不足 压力很大 所以这可能非常简单 但我仍然无法弄清楚 我想要导出各种内容 例如服务 进程 防火墙规则 本地用户 以及我需要的任何内容作为 CSV 但是每当我将其导出时 当我打开它时 CSV 在 Excel 中只有 1 列 我只希
  • 为什么使用十六进制?

    嘿 我正在看这段代码http www gnu org software m68hc11 examples primes 8c source html 我注意到在某些情况下他们使用十六进制数字 例如第 134 行 for j 1 val j
  • 使用 bq 将 null 加载到 bigquery 中

    当我使用https developers google com bigquery docs reference v2 tables insert try it上传一个 JSON 文件 但未在所有列中插入所有字段 它被接受 并且我的数据中出现
  • 如何在 Android 中使用 XML 创建多语言应用程序?

    我想创建一个多语言 Android 应用程序 包含三种语言 英语 阿拉伯语和波斯语 我必须在资产文件夹中创建三个 XML 文件并解析它们 然后使用一个用于该语言 请帮我解决我的问题吗 您需要有不同的 strings xml 来支持不同的语言
  • Vue SFC 样式未在 webpack 生产构建中提取

    尝试将 vue 和 SFC 添加到我的 webpack 应用程序中 这
  • stringr包中的Perl正则表达式

    The perl 最新版本的 stringr 中不推荐使用该函数 而是使用regex 但是 我似乎无法复制早期的行为 要将字符串向量的第一个字母大写 可以使用以下方法 name lt c jim john bill str replace
  • 如何在 iPhone 上将一张图像与另一张图像进行比较,看看它们是否有一定比例的相似度?

    我基本上想用 iPhone 或 iPad 2 上的相机拍摄两张图像 然后将它们相互比较 看看它们是否几乎相同 显然 由于光线等原因 图像永远不会完全相同 因此我想检查大约 90 的兼容性 我在这里看到的所有其他类似的问题要么不是针对 iOS
  • 通过调用方法将字符串传递给属性参数

    我正在尝试使用 NUnit 并将字符串参数传递给 TestCase 属性 但我得到 属性参数必须是属性参数类型的常量表达式 typeof 表达式或数组创建表达式 这是一个简化版本 但 MyStatic 是一个返回构建的 RegEx 字符串的
  • 在 Hyperledger 结构中动态添加组织或组织中的对等方

    我在用http hyperledger fabric doc readthedocs io en latest getting started html用于 Ubuntu VM 中的 Hyperledger Fabric 设置 根据教程 f
  • 在 Postgres 中将表从一个数据库复制到另一个数据库

    我正在尝试将整个表从一个数据库复制到 Postgres 中的另一个数据库 有什么建议么 提取表并将其直接通过管道传输到目标数据库 pg dump t table to copy source db psql target db Note 如
  • 在 CRM 2011 中禁用系统功能区

    我想使用 javascript 有条件地禁用 CRM 2011 表单中的系统功能区 AddNew 这意味着如果 statusCode 是 X 或 Y 禁用功能区 我该怎么做 我尝试获取功能区的 ID 以便将功能区的类名更改为禁用 但我得到
  • 使用局部变量提升精神

    我想根据先前解析的值定义一个规则 即 e 输入字符串具有以下结构 D
  • 使用 google picker 打开特定的 MimeType

    我正在使用实时 API 并且正在使用 realtime client utils 使用现有代码 我使用此方法创建实时文件 createRealtimeFile function title callback gapi client load
  • .apply(Math, arrayName) 在 JS 中如何工作?

    有more than one关于如何在 javascript 中查找值数组的最小值或最大值的 stackoverflow 问题 这不是那个问题 我想知道为什么路过 apply 奇怪的事情this论证仍然有效 尽管一篇好博文从 Aaron C
  • 使用 Maven 管理 DLL 依赖项

    我有一个 Java 程序 使用 Maven 管理其依赖项 其中一个依赖项是另一个程序的 JNI 包装器 Maven 负责对相关 JAR 文件的引用 但我自己却在处理 DLL 文件 有没有好的方法让 Maven 也处理 DLL 理想情况下 我
  • 如何清除所有用户的会话?

    我在我的项目中使用 php 会话 我更新了代码 向会话添加了一些值 现在我需要清除所有现有会话 ps 我的操作系统是ubuntu 9 04 默认情况下 PHP 会话信息存储在 tmp 下的文件中 文件名通常以 sess 为前缀 因此删除这些
  • lxml classic:获取除嵌套标签之外的文本内容?

    这一定是绝对的经典 但我在这里找不到答案 我正在使用 lxml cssselect 解析以下标签 li a href stations 1 span class num 3 span Detroit a li 我想获取的内容 li tag