解析 wiki 样式的网页,XPath 错误
Parsing a wiki-styled web page, XPath error
我是 XPath 的新手,我完全无法用 lxml 解析一个简单的 wiki 风格的网页。
我有以下表达式:
"".join(tree.xpath('//*[@id="mw-content-text"]/div[1]/p//text()'))
它工作正常,但我需要排除 class 为 "reference" 的子项,并使用以下表达式获得 lxml.etree.XPathEvalError:
"".join(tree.xpath('//*[@id="mw-content-text"]/div[1]/p//*[not(@class="reference")].text()'))
正确的 XPath 表达式是什么?提前致谢:)
可能是由于 .text()
而不是 /text()
而发生错误。
如果你还想包含 p
元素的文本,那么你必须使用 descendant-or-self
XPath axis:
//*[@id="mw-content-text"]/div[1]/p/descendant-or-self::*[not(@class="reference")]/text()
我是 XPath 的新手,我完全无法用 lxml 解析一个简单的 wiki 风格的网页。
我有以下表达式:
"".join(tree.xpath('//*[@id="mw-content-text"]/div[1]/p//text()'))
它工作正常,但我需要排除 class 为 "reference" 的子项,并使用以下表达式获得 lxml.etree.XPathEvalError:
"".join(tree.xpath('//*[@id="mw-content-text"]/div[1]/p//*[not(@class="reference")].text()'))
正确的 XPath 表达式是什么?提前致谢:)
可能是由于 .text()
而不是 /text()
而发生错误。
如果你还想包含 p
元素的文本,那么你必须使用 descendant-or-self
XPath axis:
//*[@id="mw-content-text"]/div[1]/p/descendant-or-self::*[not(@class="reference")]/text()