首页 > 解决方案 > 有没有办法从部分搜索中获取完整的属性名称,并将其保存为变量?

问题描述

我有

<div id="post_message_NUMBER">
                    Text 
</div>

我通过 xpath 搜索找到它[id(contains, "post_message")],我想保存post_message_NUMBER以使用变量进行第二个更具体的查询或%s填充它,但我不知道使用什么命令来获取 id 的全名,而不是文档中的某些文本或值。

我正在考虑做类似的事情ID = #get the full id name,然后Content = XS.xpath('[contains(@id, "%s")]//b//text()% ID)').getall()xpath 的开头已经保存为XS.

这行得通吗?我以前从未使用%s过任何输入都会受到欢迎。

标签: xpath

解决方案


假设您正在使用Scrapyand Python 3,这应该可以工作(我已经更正了您的 XPath 表达式和变量的声明):

id = response.xpath('//html//div[contains(@id, "post_message")]/@id').get()
xs = response.xpath('//html//div[contains(@id, "%s")]/text()'%str(id)).getall()
print(*xs, sep='\n')

推荐阅读