在线商店的价格选择器

时间:2015-10-20 19:31:13

标签: xpath

我想使用谷歌电子表格从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而不是值

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

21.68实际上是正确的结果。 当您进行刮擦时,您应始终考虑真实的服务器响应,而不是您在scree上看到的内容。

所以去看看真正的HTML。见下图(即你提到的页面)

enter image description here

以及为什么你会立即购买

enter image description here

所以写下这个

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

答案 1 :(得分: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对商店的请求和&#t; #39; s网站可能被检测为在美国,所以即使JS运行它也不会实际改变价格。