【问题标题】:XPath for ImportXML in GsheetGsheet 中 ImportXML 的 XPath
【发布时间】:2016-03-01 17:34:37
【问题描述】:

我正在尝试在 Google 电子表格中使用 ImportXML 并获得 NA 结果。错误信息:

无法解析导入的 XML 内容
网址:http://www.tripadvisor.com/Hotel_Review-g293916-d309884-Reviews-Indra_Regent_Hotel-Bangkok.html

这是我所拥有的:

importxml(url, "//img[@class='sprite-rating_rr_fill rating_rr_fill rr35']/@content")

这就是我想要的: the content attribute value of img

我期待您的建议。我不确定我做错了什么。

【问题讨论】:

  • 听起来您正试图在格式错误的 html 上使用 xml 解析器。也许 google 电子表格有一个 importhtml 函数可以代替你使用?
  • @KeithHall,感谢您的回复。可惜importhtml函数只支持table和list标签。

标签: xpath import google-sheets


【解决方案1】:

这不是你的 xpath 错误,而是源不是正确的 xml 文档(img 标签未关闭)。

确实,如果您尝试运行:

  =IMPORTXML( url, "//div[@class='rs rating']" )

解析为:

 1,087 Reviews.

但是它的任何后代都会抛出错误。 您可以先尝试通过“消毒剂”传递 html 源代码,然后它应该可以工作。

【讨论】:

  • 感谢您的回复,但我想接受评分。 (3.5)。抱歉,我可以知道如何清理 html 源代码吗?
  • html 清理不是一项小任务。您将无法直接从 tripadvisor 使用 html,但您需要将 html 保存在本地,在其上调用 sanitizer,然后在您的 google 工作表中调用导入功能,或者您需要设置代理服务这将为您进行消毒。在任何一种情况下都不是完全微不足道的。看看 jsoup.orgnpmjs.com/package/sanitize-html 。作为最后的手段,您可以在使用 importxml 之前应用一些正则表达式将 img 标签修复到 html
  • 我仔细查看了您尝试解析的源页面,发现有很多非封闭标签等。与其尝试抓取格式错误的页面,您是否考虑使用猫途鹰API? (developer-tripadvisor.com/content-api)
  • 感谢您的建议。不幸的是,要在 Tripadvisor api 上注册,需要有效的 URL,而我没有。但是,我是使用 php 完成的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-15
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多