python - 无法创建能够有条件地定位元素的 xpath
问题描述
我一直在尝试创建一个 xpath,它应该Yes
在元素中定位前三个元素,直到元素中p
的文本。我在以下脚本中使用的现有脚本定位了元素中的所有文本。但是,我找不到任何继续前进的想法。只需考虑我已经创建的一个占位符。Demarcation
h1
p
如何创建一个 xapth 以便能够Yes
在p
元素中定位前三个而不是别的?
到目前为止我的尝试:
from lxml.html import fromstring
htmldoc="""
<li>
<a>Nope</a>
<a>Nope</a>
<p>Yes</p>
<p>Yes</p>
<p>Yes</p>
<h1>Demarcation</h1>
<p>No</p>
<p>No</p>
<h1>Not this</h2>
<p>No</p>
<p>Not this</p>
</li>
"""
root = fromstring(htmldoc)
for item in root.xpath("//li/p"):
print(item.text)
解决方案
尝试在下面选择在标题同级之前的段落"Demarcation"
//li/p[following-sibling::h1[.="Demarcation"]]
推荐阅读
- java - 如何在 Android 项目中使用 JDK 12
- javascript - 每个附件我需要附上 pdf 或 word 或 jpg 图标
- python - 解构传递给函数的连接字符串?
- javascript - 在 Python 中实现 JavaScript Int32Array 数组
- android - 旋转后恢复 CountDownTimer 对象
- php - 用php中的数组计算
- arrays - Flutter:如何为数组中的每个对象初始化一个空列表?
- android - 如何使相机自动对焦 React-Native 中的对象?
- javascript - 如何从 API 请求中检索错误消息
- python - 用 Scipy 输出频谱图?