在Google Spreadsheet中使用ImportXML和XPath刮取元素

时间:2016-03-16 16:52:23

标签: html xml excel xpath google-sheets

下午好,

我正在尝试将两个反应文本之间的文本拉到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>

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

1 个答案:

答案 0 :(得分:1)

因此现在逐字地提取书籍的反应文本要困难得多 - 但好消息是你可以构造一个if语句来处理这个以及import xml,另一个好消息是这本书的span标签现在按钮仅在源代码中,如果它们确实具有可用选项。 (而不是只是作为页面模板的一部分并且始终在那里)

当该标记不存在时 - import xml返回#N / A所以使用它作为条件你可以尝试:

我用于测试的三个网址,我放在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一起使用,所以你必须将其复制下来,但仍然应该很容易做到

enter image description here