You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XPath文本匹配含点号时字面量生效 变量拼接后无返回结果问题

问题根因

  • 拼接的匹配条件遗漏了必须的英文点号:你需要的匹配规则是数字+英文句号开头,正确的查询条件是"62.",但你的拼接代码里只写了str(62),没有加后缀的.,匹配规则不匹配自然拿不到结果。
  • 错误把Python语法的括号、引号混入了XPath路径:tree.xpath()的外层括号是Python调用方法的语法,不属于XPath路径本身,你在tail里额外拼接了'),直接导致路径格式错误,同时触发字符串转义产生多余的反斜杠。

修复后代码

推荐用f-string拼接,逻辑更清晰不容易出错:

for i in range(2):
    # 测试可固定为62,循环使用的话替换为i即可
    target_num = 62
    # 拼接时记得加数字后的英文点号,XPath路径不需要带外层的调用括号
    path = f'/html/body/div[1]/main/article/div[2]/div[5]/div[*]/p[starts-with(text(),"{target_num}.")]/text()'
    baker = tree.xpath(path)

如果要沿用你原来的拆分写法,调整如下:

nose = '/html/body/div[1]/main/article/div[2]/div[5]/div[*]/p[starts-with(text(),'
# tail去掉多余的单引号和右括号
tail = ')]/text()'
for i in range (2):
    # 数字后补充英文点号
    node = '"' + str(62) + '."'
    path = nose + node + tail
    baker = tree.xpath(path)

内容的提问来源于stack exchange,提问作者user8982648

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 11:54:03