所以我试图抓取一个显示在不同页面上不同xpath中的数据。
如果您将在wiktionary ... https://en.wiktionary.org/wiki/foo上看到IPA代表的xpath,您会看到xpath是
//*[@id="mw-content-text"]/ul[1]/li[1]/span[4]
但是如果我得到另一个词,比如https://en.wiktionary.org/wiki/bar那么xpath就是
//*[@id="mw-content-text"]/ul[1]/li[2]/span[5]
我想不出有任何方法来调和这些,我有什么遗漏的吗?
答案 0 :(得分:2)
答案很简单。永远不要让工具为您编写任何XPath。所有工具都搞错了。
查看文档的HTML源代码并自行编写适当的XPath。
var result = document.evaluate("//*[@class = 'IPA']", document),
elem;
while (elem = result.iterateNext()) {
console.log(elem);
}
以上显示了最简单的变体。它会在https://en.wiktionary.org/wiki/foo上选择两次出现<span class="IPA">
,在https://en.wiktionary.org/wiki/bar上会出现更多次出现。
使用更具体的表达式来缩小结果范围。