XPath:如何捕获前一个元素?
XPath: How do I capture the previous element?
我有这样的构造
<p>File name</p>
<a href="https://somelink.pdf">Download</a>
我需要使用 CSS 和 XPath 捕获 link 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]
将 select 第一个 p
元素兄弟姐妹在每个 a
元素之前,其字符串值等于 "Download"
.
从p
开始
这个 XPath,
//p[.="File name"]/following-sibling::a[1]
将 select 第一个 a
元素兄弟跟随每个 p
元素,其字符串值等于 "File name"
.
无论哪种情况,您都可以通过将 /text()
附加到 XPath 来 select 文本节点子节点。
我有这样的构造
<p>File name</p>
<a href="https://somelink.pdf">Download</a>
我需要使用 CSS 和 XPath 捕获 link 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]
将 select 第一个 p
元素兄弟姐妹在每个 a
元素之前,其字符串值等于 "Download"
.
从p
开始
这个 XPath,
//p[.="File name"]/following-sibling::a[1]
将 select 第一个 a
元素兄弟跟随每个 p
元素,其字符串值等于 "File name"
.
无论哪种情况,您都可以通过将 /text()
附加到 XPath 来 select 文本节点子节点。