xpath - 有没有办法从部分搜索中获取完整的属性名称,并将其保存为变量?
问题描述
我有
<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
过任何输入都会受到欢迎。
解决方案
假设您正在使用Scrapy
and 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')
推荐阅读
- postgresql - docker-compose psql 不在 127.0.0.1 上提供服务
- arrays - 在 C 中,如何打印用户选择输入的值的索引?
- directory - 文件管理器的操作
- sql-server - 如何查询系统版本表以获取最近的更改?
- javascript - three.js — faceVertexUvs 在 r.133 版本上未定义
- php - 比较 date() 和时间戳 PHP
- c - gfortran:将逻辑参数从 C 传递给 Fortran 函数
- sql - SQL 全文搜索 - 禁用破折号分段
- facebook-marketing-api - facebook 营销 api 中的库存储备字段未更新
- flutter - 如何解决我的 android\build.gradle 文件的 project.evaluationDependsOn(':app') 行中的错误