将importxml限制为定义的范围

时间:2017-09-25 19:54:14

标签: google-sheets

目前我正在使用转置,然后使用另一列来计算结果并给我我想要的内容。但是因为Tanaike非常棒并且在另一个部分帮助我,所以我试图围绕他所做的事情并将其应用于此。

从A1中的此网址开始,

https://www.zillow.com/homedetails/307-N-Rosedale-Ave-Tulsa-OK-74127/22151896_zpid/

这是A2中的公式:

=If($A$1:A="","",Transpose(importxml($A1:$A,"//span[@class='snl phone']")))

根据列表,有时会有三个电话号码,有时四个,有时八个,根据需要分布在尽可能多的列中。

我正在寻找业主电话号码。这是检查中的ELEMENT。

<div class="info flat-star-ratings sig-col" id="yui_3_18_1_2_1506365934526_2361">  <span class="snl name notranslate">Property Owner</span>           <span class="snl phone" id="yui_3_18_1_2_1506365934526_2360">(918) 740-1698 </span>    </div>

所以我尝试了这个,它的内容是空的。我想要查看div类信息平面,然后在那个snl手机中,并在跨度/结束前停止。

=importXML(B17,"//div[@class='info flat-star-ratings sig-col']//span[@class='snl phone']/@span")

我真正需要的只是业主电话号码,准确率达到95%或更高。

1 个答案:

答案 0 :(得分:0)

如何修改XPath查询?

修改后的XPath查询:

=importxml(A1,"//div[@class='info flat-star-ratings sig-col']//span[@class='snl phone']")

结果:

enter image description here

如果这不是你想要的数据,我很抱歉。

编辑:

第4和第8个数字是相同的。我的理解是否正确?如果没问题的话。请将URL和以下公式分别添加到“A1”和“A2”。

=QUERY(ARRAYFORMULA(IF(IMPORTXML(A1,"//div[@class='info flat-star-ratings sig-col']//span[@class='snl name notranslate']")="Property Owner",IMPORTXML(A1,"//div[@class='info flat-star-ratings sig-col']//span[@class='snl phone']"), "")),"Select * where Col1<>''")

结果:

enter image description here