【问题标题】:Parsing a wiki-styled web page, XPath error解析 wiki 样式的网页,XPath 错误
【发布时间】:2016-07-04 15:17:44
【问题描述】:

我是 XPath 的新手,我完全无法使用 lxml 解析一个简单的 wiki 样式的网页。

我有以下表达式:

"".join(tree.xpath('//*[@id="mw-content-text"]/div[1]/p//text()'))

它工作正常,但我需要排除类为“引用”的孩子并获得带有以下表达式的 lxml.etree.XPathEvalError:

"".join(tree.xpath('//*[@id="mw-content-text"]/div[1]/p//*[not(@class="reference")].text()'))

什么是正确的 XPath 表达式?在此先感谢:)

【问题讨论】:

    标签: python xml xpath lxml wiki


    【解决方案1】:

    可能是因为.text()而不是/text()而发生错误。

    如果您还想包含 p 元素的文本,那么您必须使用 descendant-or-self XPath axis

    //*[@id="mw-content-text"]/div[1]/p/descendant-or-self::*[not(@class="reference")]/text()
    

    【讨论】:

    • 嗨,您能在您的代码中添加一些解释吗?这会在审核队列中弹出,因为只有代码的答案往往如此。
    • 谢谢,就是这样!昨天看懂了,最终的XPath表达式是//*[@id="mw-content-text"]/div[1]/p/descendant-or-self::*[not(ancestor::sup)]/text()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    相关资源
    最近更新 更多