xpath - scrapy 和 xpath:如果父元素包含文本,则获取子元素中的文本
问题描述
如果父元素包含带有特定字符串的文本,我如何获取子元素的文本?
例如:
<li>
"string1"
<span>
"Hello"
</span>
</li>
<li>
"string2"
<span>
"Ola"
</span>
</li>
从上面的 html 代码中,如何使用 xpath 只获取字符串“Ola”?
解决方案
在不知道scrapy的情况下,我会尝试
//li[text()[contains(.,"string2")]]/span/text()
//li[text()[contains(.,"string2")]]
选择li
文本包含的元素string2
/span
选择所选元素span
下方的元素li
/text()
: 返回所选 span 元素的文本
更新:这更简单,也应该工作:
//li[contains(text(),"string2")]/span/text()
推荐阅读
- xcode - 在 Xcode 中使用断点时应用程序崩溃
- python - 如 guppy 所述,长期运行项目的奇怪内存消耗
- xcode - 如何在 Apple Watch 上从 xcode 运行我的应用程序?
- html - DataTables:如何将第一列(ID)显示为超链接?
- r - ifelse 替换值,如果它低于以前的值
- javascript - 获取动态页面YOffset
- javascript - 在反应中已路由组件内的组件之间切换
- image-processing - 用 Python 绘制 fftshifted 图像后查找高频中心的坐标
- docker - Nginx:代理到另一个 nginx 实例:网关超时
- xamarin - 设置 Xamarin UI 测试获取错误与 Android SDK 不兼容