首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么这个XPath查询不能像我假设的那样工作?(搜索带有一些@的元素,而排除带有其他@的元素)

XPath是一种用于在XML文档中定位和选择节点的查询语言。它使用路径表达式来描述节点的位置,并提供了一些函数和运算符来过滤和选择节点。

在这个问题中,XPath查询不能像假设的那样工作的原因可能有以下几个方面:

  1. 语法错误:XPath查询可能存在语法错误,导致无法正确解析查询表达式。在编写XPath查询时,需要确保语法正确,并遵循XPath的规范。
  2. 元素属性匹配问题:如果要搜索带有某个属性的元素,可以使用@属性名的语法来匹配。但是如果要排除带有其他属性的元素,XPath并没有提供直接的语法来实现。可以考虑使用其他的逻辑运算符和函数来实现这个需求,比如使用not()函数来排除带有其他属性的元素。
  3. XML文档结构问题:XPath查询的结果受到XML文档结构的限制。如果XML文档的结构与查询表达式不匹配,可能导致查询结果为空或不符合预期。需要确保XML文档的结构与查询表达式相匹配。

综上所述,要解决这个问题,可以检查XPath查询语法是否正确,尝试使用逻辑运算符和函数来实现排除其他属性的元素的需求,并确保XML文档的结构与查询表达式相匹配。如果仍然无法解决问题,可以提供更具体的查询和XML文档示例,以便更好地理解和分析问题。

(以上答案仅供参考,具体答案可能需要根据实际情况进行调整。)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在Selenium WebDriver中查找元素?(一)

如果任何网站具有非唯一ID或具有动态生成ID,则不能使用此策略唯一地查找元素,而是将返回与定位器匹配第一个Web元素。我们将如何克服这种情况,将在XPATH / CSS选择器策略中进行说明。...如果不能通过Id / name / link / className / XPATH / CSS检测到特定Web元素,则该方法未被广泛使用并用作最后手段。...让我们继续前进,看看如何使用LinkText查找元素 通过链接查找文本/部分链接 使用这种方法,可以找到带有链接名称或具有匹配部分链接名称“ a ”标签( Link )元素。...相反,我们必须使用CSS选择器或XPath选择器。 XPATHSelector XPATH使用标准XML查询语法,因此更具可读性,学习曲线也不那么陡峭。...但是,CSS选择器虽然具有更简单语法支持,但不像XPATH其他文档支持那样是标准,与XPATH不同。

6K10

【Python爬虫实战】XPath与lxml实现高效XMLHTML数据解析

XPath 是一种查询语言,能够通过路径表达式从结构化文档中轻松提取节点和元素 lxml 是一个高效 Python 库,专注于解析和操作 XML 和 HTML 文档。...一、为什么学习xpath和lxml 学习 XPath 和 lxml 原因主要在于它们在处理和解析 XML 和 HTML 数据方面的强大功能。...以下是详细原因: (一)高效解析和提取数据 XPath 是一种用于在 XML 和 HTML 文档中定位节点查询语言。它使得我们可以用简单路径表达式从文档中提取出特定元素或文本内容。...(五)xpath总结 XPath 是一种功能强大查询语言,通过路径表达式快速准确地从 XML 或 HTML 文档中选择节点和元素。...通过路径表达式和一些特殊操作符,XPath 可以快速、精准地提取所需内容。以下是 XPath 基本语法和常用表达式: (一)基本路径表达式 /:选择根节点。

14210
  • Python:非结构化数据-XPath

    bookstore 元素后代所有 book 元素不管它们位于 bookstore 之下什么位置 //book 选取所有 book 子元素不管它们在文档中位置 //book/....在下面的表格中,我们列出了带有谓语一些路径表达式,以及表达式结果: 路径表达式 结果 /bookstore/book[1] 选取属于 bookstore 子元素第一个 book 元素。.../bookstore/book/title | //price 选取属于 bookstore 元素 book 元素 XPath 高级用法 模糊查询 contains 目前许多web框架,都是动态生成界面的元素...Blog节点值中带有 cn 字符串Person节点 Xpath表达式:/Root//Person[contains(Blog,'cn')] 2.查询所有Blog节点值中带有 cn 字符串并且属性ID值中有...假设网页源代码在selector中: data = selector.xpath('//div[@id="test1"]/text()').extract()[0] 就可以把“大家好!”

    2.3K31

    用测试用例设计路子去学习新知识点。

    然后我继续提问:那我们现在开始研究其他用例了,刚刚是 * 作为目标元素排在了xpath表达式末尾,那我现在如果给移动到 中间呢?...,不能总被眼前一个demo局限住,要时刻关联到实际场景才行。...知道了这点后,我们可以试着再去推断xpath搜索原理和一些事实: 原理1:xpath搜索就是在html 中 由上至下,一个元素一个元素拿出来看是不是复合xpath表达式,符合就塞到最终结果列表中...原理2:xpath复合表达式(复合语句) 中,是没有进行拆开成俩段或多段,然后单独搜索,再把结果汇总到一起。而是本身就支持这种复合写法,能直接判断一个元素是否符合 这个复合语句,并没有拆开。...这样的话,从上到下搜索只需一遍即可,不是多遍。 事实3:这种复合表达式写法,并非selenium自创,而是xpath本身就支持。如果是自创,那么底层原理一定是拆开单独筛查然后汇总。

    26620

    为什么react元素有个$$typeof 属性

    ,我们把这个对象叫做React元素。...为什么会有个Symbol作为值? 这个也是你在写react时候不需要知道一件事,但是如果你知道了,那感觉会很棒。在这篇文章中还有一些你可能想知道安全性提示。...这就是为什么像React这样现代库在默认情况下为字符串转义文本内容原因: {message.text} 如果message.text是带有其他标签,则它不会变成真正标签...React有一些有效用例来支持像我刚刚上面所做那样编写普通元素对象。当然,你可能不希望像这样编写它们 - 但这对于优化编译器,在工作程序之间传递UI元素或者将JSX与React包解耦是有用。...因此,即使服务器具有安全漏洞并返回JSON不是文本,该JSON也不能包含Symbol.for('react.element')。

    1.8K30

    Python带你薅羊毛:手把手教你揪出最优惠航班信息

    它会搜索一个“弹性”日期范围,以便查找在你首选日期前后 3 天内航班信息。尽管这个脚本一次只能查询一对目的地(出发-到达),但你很容易就能对它进行调整,以在每个循环内运行多次。...当我第一次开始做网络抓取工作时候,我对这个方面……并不是太感兴趣。没错,这是真心话。我那时候更希望搞些预测性建模,或是金融分析,甚至一些语义情绪分析之类“高级”项目。...在这个过程中,我也考虑过 Momondo、Skyscanner、Expedia 以及一些其他网站,不过对初学者来说,这些网站的人机验证实在是……比较无情。...没错,已经有更先进方法来寻找更便宜机票,然而我只希望我文章能给读者带来一些简单实用东西。...请记住,带有 A 变量与行程第一段相关, B 与第二段相关。让我们看看下一个函数吧。 06 什么,还有其他函数? 是的。

    1.3K20

    12306自动刷票下单-查票

    当然Chrome我也没卸载,因为Chrome上有个很赞功能,在元素界面查找元素时候可以用css和xpath,可不是右键copy里面的css和xpath哦 ?...图片.png 在这个查找框里你就可以写自己css和xpath,看实时效果,这个真是太棒了,不用装额外插件。...图片.png 卧了一个槽,忽略我上面说吧,要写博客了,有一个请求Firefox竟然不给显示了,还是虚拟机吧 ---- 后记 后记为什么要加载前言后面,不是在文章最后,我怕你不看。...图片.png 看到了车次G101,8、9是开车时间和到达时间,10是历时,商务座特等座9张余票,32行显示9,一等二等座都是有票,对应30、31,就不能具体确定了,暂时先不管,至少我们确定了这个请求是查询出我们需要车票信息了...图片.png 然后把大部分我们需要参数都对应出来,这样就看到像我上面写函数那样,取出我们需要信息 其实有一种更简单方式,就是你查询了余票信息以后,会看到余票几张几张,然后去对应信息参数中去找

    1.3K80

    年轻人第0条爬虫 | 如何最快理解工具思维_以八爪鱼为例

    XPath教程 https://www.w3school.com.cn/xpath/index.asp 0.3 勇敢心 • 善用搜索引擎 有问题先尝试查询可能已有的解答,你踩过坑大概率有前人踩过。...八爪鱼模仿人视野选择判断哪些数据是要收集,再用人方式完成滚动加载、点击按钮、翻页等操作。 本质上爬虫只是代替人意志工具人,任劳任怨地帮你把重复性工作高效完成。...自动识别网页主要是总会在一些比较奇特结构部分出错,这时候就需要手工改正,主要会观察xpath路径是否被软件识别错。自动识别得到xpath一般是用固定序号编写,比较死板。...列表中每一项使用 • 以下直接引用定义 HTML元素是块级元素,它是可用于组合其他 HTML 元素容器。元素没有特定含义。...一个 HTML文档中不能存在多个有相同 id 元素

    95310

    软件测试|AppCrawler 自动遍历测试实践

    图片上两篇文章介绍了自动遍历测试需求、工具选择和 AppCrawler 环境安装、启动及配置文件字段基本含义,这里将以实际案例更加细致说明配置文件用法和一些特殊场景处理。...='true']", action: click }blackList:黑名单,将不想要被点击元素加入黑名单中 配置文件原始写法如下,表示将带有2位数字排除在外,可能是App中包含了很对关于股价展示...,这个就可以借助lastList来完成,让元素在点进标签页后内容为最后遍历lastList: - { xpath: "//*[contains(@resource-id,'ti_tab_indicator...tag 页内部来找标志控件了,我们发现在“股票”和“用户”页中搜索出来结果名称 id 是不同:图片图片3)上面介绍过了 defineUrl 是取 text 属性值作为标志区分,所以这里取股票页第一个元素...答:顺序是这样排列firstList[0]firstList[1]排除lastList firstList之后剩下元素lastList[0]lastList[1]backbuttonAppclawer

    94830

    利器 | AppCrawler 自动遍历测试实践(三):动手实操与常见问题汇总

    ='true']", action: click } blackList:黑名单,将不想要被点击元素加入黑名单中 配置文件原始写法如下,表示将带有2位数字排除在外,可能是App中包含了很对关于股价展示...,这个就可以借助lastList来完成,让元素在点进标签页后内容为最后遍历 lastList: - { xpath: "//*[contains(@resource-id,'ti_tab_indicator...tag 页内部来找标志控件了,我们发现在“股票”和“用户”页中搜索出来结果名称 id 是不同: 3)上面介绍过了 defineUrl 是取 text 属性值作为标志区分,所以这里取股票页第一个元素...'true']//*", action: click } 5)另外我们之前在 selectList 中写了 clickable=true, clickable=true 通常只是布局元素,布局元素一般是没有任何属性...答:顺序是这样排列 firstList[0] firstList[1] 排除lastList firstList之后剩下元素 lastList[0] lastList[1] backbutton Appclawer

    71710

    Xml基础03

    SelectNodes(string) 选择匹配 XPath 表达式节点列表 适用于: XmlDocument XmlElement XmlAttribute XPath Xml文档查询语言 用于从...XML 文档中选择节点集 目标 (假设当前节点是book节点) XPath 举例 选择当前节点 ....) text() 在当前文档中选择带有特定名称所有节点,例如选择所有 author节点 //author 在当前文档中选择带有特定名称和特定父节点名称所有节点,例如选择所有父节点是book,节点是author...XmlTextReader:提供了对XML文件快速,只向前访问。XmlTextReader技术类似于读取其他任何文件,先打开文件,读取文件,直至文件结尾,后关闭文件。...适用于处理数据流,即随着数据流动依次处理数据。

    18210

    XPATH定位(基础篇)

    ,我们真正需要熟练掌握是通过xpath和css定位,一般只要掌握一种就可以应对大部分定位工作了 下面总结一下xpath定位方法,结合自己练习实例加深一下了解 xpath概念和基本语法 网上关于.../xpath/index.asp XPATH一些常用路径表达式 · 图片来源 w3cschool 一些路径表达式实例及对应结果 · 图片来源 w3cschool 一些带有谓语路径表达式及对应结果...标签名[contains(@属性, '属性值')]" 4.如果一个元素无法通过自身属性直接定位到,则可以先定位它父(或父父,它爷爷)元素,然后再找下一级即可 例如定位『百度搜索框』,可以按照此种方式试验一下...(主要是看一下这个思路) 百度搜索框对应标签,定位标签的话, 可以先定位标签, 再定位标签元素标签, 最后找到标签...还有当定位失败时不要慌,找下原因,眼见不一定为实 像上面定位百度搜索框时,通过id属性没有定位到标签, 查看通过webdriver打开网页元素时,发现标签id属性没了,只有

    56410

    一键自动化博客发布工具,用过的人都说好(公众号篇)

    点击图文消息到了首页之后,我们就可以点击图文消息这个按钮,开始我们创作了。公众号图文消息实现比较复杂。我们只能通过xpath来定位到这个元素。...这里文章内容居然是一个嵌入iframe:说不上为什么,但是总是感觉怪怪。...当然,这种就不能像传统方式那样来设置内容了。我们只能使用拷贝粘贴方式。另外,微信公众号不能识别markdown,所以我们必须把markdown转换成为html。...time.sleep(2) # 等待2秒 driver.switch_to.window(driver.window_handles[-1]) time.sleep(1) # 等待1秒 # 不能元素赋值方法...]')send_button.click()总结公众号基本功能完成了,实际上还有一些细节内容并没有实现。

    33200

    【译】为什么React元素里拥有$$typeof属性?

    为什么属性是一个Symbol值? 这是另一件你使用React时不需要知道事情,但是当你知道了你会收获良多。这些也是一些你可能想知道安全相关贴士。... {message.text} 如果message.text是带有其他标记恶意字符串,则它不会变成真正标记。...React有一些有效例子来支持像我刚刚在上面做那样编写普通元素对象。...因此,即使服务器具有安全漏洞并返回JSON不是文本,该JSON也不能包含Symbol.for('react.element')。...React仍然在元素上包含$typeof字段以保持一致性,但它将被设置为一个数字 ---- 0xeac7。 为什么会是这个数字?因为0xeac7看起来有点像“React”。。。

    76310

    爬虫0040:数据筛选爬虫处理之结构化数据操作

    例如,“o{1,3}”将匹配“fooooood”中前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。 ? 当该字符紧跟在任何一个其他限制符(*,+,?...,{n},{n,},{n,m})后面时,匹配模式是非贪婪。非贪婪模式尽可能少匹配所搜索字符串,默认贪婪模式则尽可能多匹配所搜索字符串。例如,对于字符串“oooo”,“o+?”...预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配搜索不是从包含预查字符之后开始。 (?!...*l') # 展示数据 >>> r.search(s).group() # 展示得到数据,显然匹配数据中包含了其他数据 'lelo worl' # 那么,下面这个例子,貌似更加实际 >>> html...较低 那么为什么要用BS4呢?

    3.2K10

    数据技术|爬虫一下,百度付费文档轻松得,不用花钱,不用花钱,不用花钱!!!

    一些勤勤恳恳的人,则会选择上传文章,慢慢攒下载券。任劳任怨的人,则会自己一点一点复制粘贴,复制到word里文字太大,那就复制到txt文件里。...既不想花钱又不想攒下载券,也不想一点一点复制粘贴的人,会选择“冰点文库”这样下载软件,不过貌似现在“冰点文库”已经不能使用了。但这些都太麻烦了,用爬虫就可以轻松搞定付费文档文字部分内容。...然后我们输入文本再模拟点击了回车,就像我们敲击键盘一样。我们可以利用Keys这个类来模拟键盘输入。 最后也最重要一点是可以获取网页渲染后源代码。通过输出page_source属性即可。...不过我还是太小看百度文库前端工程师了,这个继续阅读按钮并不能通过selenium访问,因为它调用了js代码里功能,js代码我们很难找到是哪一个。...();' driver.execute_script(js) 这样就搞定了,如果大家写其他爬虫时不能直接模拟一些操作,那么就可以考虑是不是要调用js,这个方法还是屡试不爽

    57.5K92
    领券