使用Google电子表格导入ImportXML期间的内部错误

时间:2014-09-19 21:00:44

标签: xpath google-sheets

我正在尝试将一些数据(市值)从彭博网站导入我的Google电子表格,但谷歌给了我Import Internal Error.

=INDEX(ImportXml("http://www.bloomberg.com/quote/7731:JP","//*[@id='quote_main_panel']/div[1]/div[1]/div[3]/table/tbody/tr[7]/td"),1,1)

我真的不知道导致这个问题的原因,但我过去常常使用xpath查询来克服它。这次我找不到有效的xpath查询。

有人知道这个错误的原因,或者我怎样才能使它发挥作用?

1 个答案:

答案 0 :(得分:2)

我不熟悉Google电子表格,但我认为代码中只有一个多余的右括号。

替换

=INDEX(ImportXml("http://www.bloomberg.com/quote/7731:JP"),"//*[@id='quote_main_panel']/div[1]/div[1]/div[3]/table/tbody/tr[7]/td"),1,1)

=INDEX(ImportXml("http://www.bloomberg.com/quote/7731:JP","//*[@id='quote_main_panel']/div[1]/div[1]/div[3]/table/tbody/tr[7]/td"),1,1)

另外,你确定它是ImportXml而不是ImportXML吗?

如果这不能解决您的问题,您必须在HTML中解释您正在寻找的内容。

修改

将您显示的Xpath表达式应用于HTML源代码,我得到以下结果:

<td xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml" class="company_stat">641,807.15</td>

这是你所期望的吗?如果是,那么XPath没有错,问题出在其他地方。如果没有,那么请描述您正在寻找的内容,我将尝试找到合适的XPath表达式。

第二次修改

以下公式适用于我:

=ImportXML("http://www.bloomberg.com/quote/7731:JP","//table[@class='key_stat_data']//tr[7]/td")

产生的细胞值:

641,807.15

XPath表达式现在查找特定的表(因为HTML中只有3个表,并且所有表都具有唯一的class属性值)。

修改

您的初始路径表达式不起作用的原因是它包含tbody,有关详细信息,请参阅此excellent answer。归功于@JensErat。