【问题标题】:scrape element using ImportXML with XPath in Google Spreadsheet在 Google 电子表格中使用 ImportXML 和 XPath 抓取元素
【发布时间】:2016-03-16 16:52:23
【问题描述】:

下午好,

我正在尝试将网站 HTML 中两个 react-text 之间的文本拉入 excel 或 google 表格中。如果 A1 中的 URL 在他们的网站上有此文本,我只想要单元格 b1 中的“立即预订”字样。

这里是网址:https://www.facebook.com/CourtyardByMarriottSiouxFallsSd/

源代码如下:

<div class="_58gm">
<div id="pages_actions_pagelet" data-referrer="pages_actions_pagelet">
<span class="_4dlt" id="u_0_3l">
<button data-reactroot="" data-testid="ccta_viewer_unit_testid" class="_4jy0 _4jy4 _517h _9c6 _42ft" type="submit" value="1">
<i alt="" class="_3-8_ img sp_bfiwgCAMT7U sx_3b8ce3"></i>
<!-- react-text: 3 -->
Book Now
<!-- /react-text -->
</button>
</span>

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 你尝试了什么?您收到错误消息了吗?
  • 感谢您的提问! K 如此尝试: =IMPORTXML(A1,"//div[@class='li']//a") IE.document.getElementsByTagName("button") =IMPORTXML(A1,"//div[@ class='_58gm] /i[@class='_3-8 img sp_bfiwgCAMT7U sx_3b8ce3 ']//文本")

标签: html xml excel xpath google-sheets


【解决方案1】:

所以现在从字面上提取书的反应文本要困难得多 - 但好消息是你可以构造一个 if 语句来处理它以及 import xml,另一个好消息是现在书的 span 标签如果他们确实有可用的选项,则按钮仅在源代码中。 (与它只是页面模板的一部分并始终存在相反)

当该标签不存在时 - 导入 xml 将返回 #N/A 因此,您可以尝试使用它作为条件:

我用于测试的三个url,我放在A1,A2,A3中是:

https://www.facebook.com/CourtyardByMarriottSiouxFallsSd/ https://www.facebook.com/QueenAnneHotel/
https://www.facebook.com/CourtyardUSSF

第二个网址是三个网址中唯一没有现在预订选项的网址 - 这是公式:

=IF(ISNA(IMPORTXML(A1,"//*[@class='_4dlt']")),"","Book Now")

遗憾的是,arrayformula 不适用于 importxml,因此您必须将其复制下来,但仍然应该很容易做到

【讨论】:

  • 天啊,你太棒了,是的,这很有意义。差不多,它找到了来源并确定单词书现在是否属于所请求的标签。我还想说,您非常擅长描述错误和解决方案。再次感谢!!!
  • @AJGeringer 谢谢 :) 如果您有机会请“接受”答案作为您问题的解决方案?
  • 嘿 Aurielle,非常感谢您的帮助,我接受了这个答案,不用担心。我希望你能帮助我理解为什么,“所以现在从字面上提取书的反应文本要困难得多”。我宁愿学习也不愿为我完成......谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多