Google电子表格ImportXML错误:“XPath查询未返回任何数据”

时间:2014-02-08 23:24:27

标签: xpath google-sheets

当我尝试运行此XPath查询时,我继续收到此错误

//div[@iti='0']

此链接(从谷歌搜索航班)

https://www.google.com/flights/#search;f=LGW;t=JFK;d=2014-05-22;r=2014-05-26

我得到这样的东西:

=ImportXML("https://www.google.fr/flights/#search;f=jfk;t=lgw;d=2014-02-22;r=2014-02-26";"//div[@iti='0']")

我验证了XPath是正确的(我得到了想要使用XPath助手的答案,想要的答案是相对于所选择的第一个航班的数据)。

我想这是一个语法问题,但我尝试了或多或少所有低/大写,标点符号(替换;,'“)的组合,我试图链接URI和存储在单元格中的XPath查询,但没有任何作用。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:4)

事实上,也许这是新的谷歌工作表上的一个错误或他们已经改变了功能的工作方式。我激活了我的,当我尝试使用ImportXML时,它根本无法工作。由于我这里有一些旧床单(在旧机制上),它们仍能正常工作。如果我将脚本从旧版本复制并粘贴到新版本,它就不会获得任何数据。

这是一个例子:

=ImportXML("http://www.nytimes.com/pages/todayspaper/index.html";"//div[@class='columnGroup first']//h3")

如果我在旧机制上运行它可以正常工作,但如果我在新机制上运行相同,首先它会交换我的“;”对于“,”然后它会带来一个“#N / A”,警告“错误:导入的XML内容无法解析”。

编辑(05/05/2015): 我很高兴地说我今天在新的电子表格上再次测试了这个功能,他们已经修复了它。我每两个月检查一次,现在终于解决了这个问题。我上面添加的示例现在返回信息。

答案 1 :(得分:2)

对不起,您将无法轻松解析Google结果页。您的函数抛出错误的原因是因为您在浏览器中看到的页面内容是由javascript生成的,而Google电子表格不会执行js。

您的ImportXML具有正确的语法,它不会返回任何内容,因为您正在寻找的节点不在那里importXML Parse Error)。

如果您希望在电子表格中显示这些结果,则必须找到其他来源。有关信息,一些图书馆已经解析了通常的结果页面(例如http://www.seerinteractive.com/blog/google-scraper-in-google-docs-update,如果它仍然有效),但我怀疑为你的特殊情况找到一个很容易。

答案 2 :(得分:1)

这给出了答案(importXML Parse Error),但并不完全明显。

ImportXML不加载Javascript。当您在Google搜索结果上构建ImportXML查询时,请确保您针对已关闭Javascript的页面版本进行测试。您可以使用Chrome DevTools执行此操作。

(但我同意ImportXML变化无常,特殊,并且通常引起愤怒)。