2015-10-20 63 views
0

我想使用谷歌电子表格从banggood(即http://www.banggood.com/Wholesale-IMAX-B6-Digital-RC-Lipo-NiMH-battery-Balance-Charger-p-46220.html)中提取某些产品的价格。网上商店的价格选择

现在我可以抓住价格,而且其他值使用该字符串:

=IMPORTXML(A6 ; "//*[contains(@class, 'now')]") 

我得到这个:

21.68
现在购买

我只是想要获得此范围内的实际值:

<div class="now" oriprice="21.68">363.69</div> 

它应该是单独的“353.69”(这是mi币的价格,MX)。

我也试过这样:

=IMPORTXML(A6 ; "//*[contains(@class, 'now')] and string('oriprice')") 

但返回TRUE不是值

任何帮助,将不胜感激。

回答

0

21.68实际上是一个正确的结果。 当你搞砸时,你应该总是考虑真实的服务器响应,但不是你在scree上看到的。

因此,去源并看到真正的HTML。见下图(即页面ü提到)

enter image description here

和原因u得到立即购买是

enter image description here

所以写这

=IMPORTXML(A6 ; "//*[@class = 'now']") 
+0

如何删除“Buy it now”文本,该文本位于“buynow”类中,是否有将缩放结果缩小为确切文本“buy”的方法? –

+0

@CarlosEsponda是的,有一种方式,看我更新的答案。只是避免包含功能和使用严格平等。 –

+0

感谢您解决此问题。 –

0

原因你得到21.68是因为这是美元的价格,这似乎是该网站的基础货币。

当您查看源代码时,如Dmytro所示,您可能会在包含价格的div中看到不同的值。例如,我看到14.26,因为那是我国货币的价格。

页面加载后,此值正在更新。该页面的JavaScript是检测你的国家,在其设置与货币的cookie,然后做一个AJAX调用此页:

http://www.banggood.com/index.php?com=product&t=initViewHistory&utm_medium=&product_id=46220

那是你自己的货币返回与价格的HTML片段,然后将主页面的Javascript插入到页面中。

就电子表格而言,您的问题是,当您使用Google表格获取该页面时(a)Google表格不会运行Javascript和(b)Google可能会检测到Google对该商店网站的请求因为在美国,所以即使运行JS也不会改变价格。

+0

谢谢你的解释。 –