我有这样的构造
<p>File name</p>
<a href="https://somelink.pdf">Download</a>
我需要使用 CSS 和 XPath 捕获链接 a
及其名称 p
。我正在尝试执行以下操作,首先我使用 CSS 选择器查找 href
值以 .pdf
结尾的所有文件 (a[href$=". pdf"]
):
for i in response.css('a[href$=".pdf"]'):
link = i.css('::attr("href")').get()
name = i.xpath(?????????)
print(name, link)
如何使用 XPath 捕获 p
元素中的文本?
最佳答案
从a
开始
这个 XPath,
//a[.="Download"]/preceding-sibling::p[1]
将选择字符串值等于“Download”
的每个a
元素之前的第一个p
同级元素。
从p
开始
这个 XPath,
//p[.="File name"]/following-sibling::a[1]
将选择每个p
元素后面的第一个a
同级元素,其字符串值等于“文件名”
。
无论哪种情况,您都可以通过将 /text()
附加到 XPath 来选择文本节点子节点。
关于html - XPath:如何捕获前一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70854496/