xpath - 尽管使用 [ ] 指定了项目,但 Xpath 表达式仍拉取多个项目
问题描述
我正在尝试编写一个 XPath 表达式,它可以返回与搜索的下一页关联的 URL。
导致搜索下一页的 URL 始终href
位于a
标签后面的标签中span class="navCurrentPage"
,我一直在尝试使用一个following-sibling
术语来拉下一个 URL。我在 Chrome 控制台中的搜索是:
$x('//span[@class="navCurrentPage"][1]/following-sibling::a/@href[1]')
我认为通过指定@href[1]
我只会返回一个 URL(认为 [1] 选择了列表中的第一个元素),但 Chrome(和 Scrapy)却返回了四个 URL。我不明白为什么。请帮助我了解如何选择我正在寻找的一个 URL。
这是您可以找到给我带来麻烦的 HTML 的 URL:
感谢您的帮助。
解决方案
运算符优先级://x[1]
意味着/descendant-or-self::node()/child::x[1]
找到x
作为其父项的第一个子项的每个子代。您想要(//x)[1]
在所有名为 的后代中找到第一个节点x
。
推荐阅读
- php - PHP 生成器返回类型
- php - 在构建步骤中无法连接到 docker 容器“php”中的 mysql
- javascript - 添加 ”!” 到他们拥有的每件物品的末尾
- angular - 在 Angular 组件中捕获服务属性更改
- php - IOS中的Wordpress wp_logout_url()给出弹出框要求登录
- haskell - 使用类型类将值与 Haskell 中的类型相关联
- c# - 插入查询未在数据库表中插入会话 ID
- gradle-kotlin-dsl - Gradle Kotlin DSL:访问 settings.gradle.kts 中定义的对象
- windows - 在 Windows 上使用 Lua 读写串行端口
- javascript - 根据 Symbol ES6 中的可用性重复调用