首页 > 解决方案 > 文本中带有点/句点的 XPATH 在创建为变量时不返回任何结果,但在使用文字时有效

问题描述

总新手边做边学。

我正在尝试从文章中提取文本。我能得到的唯一钩子是我想要的每个项目都以一个数字开头,后跟一个句点/点。

我遇到的问题是,如果我使用嵌入了句点/点的字符串,则 xpath 查询将返回一个值。如果我尝试通过组装字符串来创建字符串,这样我就可以改变数字,我在响应中什么也得不到

所以这有效:

baker = tree.xpath('/html/body/div[1]/main/article/div[2]/div[5]/div[*]/p[starts-with(text(),"62.")]/text()')

但这失败并出现语法错误:

nose = '/html/body/div[1]/main/article/div[2]/div[5]/div[*]/p[starts-with(text(),'
tail = ")]/text()')"
for i in range (2):
    node = '"' + str(62) + '"'
    path = nose + node + tail
    baker = tree.xpath(path)

用于比较目的:字符串复制/粘贴返回一个值

/html/body/div[1]/main/article/div[2]/div[5]/div[*]/p[starts-with(text(),"62.")]/text()')

如上所述组装的字符串不返回任何内容

'/html/body/div[1]/main/article/div[2]/div[5]/div[*]/p[starts-with(text(),"62")]/text()\')'

我认为这与组装字符串末尾的反斜杠有关,但我似乎无法摆脱它

标签: xpath

解决方案


我不明白:

tail = ")]/text()')" 

为什么不只是:

tail = ')]/text()'

推荐阅读