我正在尝试将一些数据(市值)从彭博网站导入我的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查询。
有人知道这个错误的原因,或者我怎样才能使它发挥作用?
答案 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。