我想使用谷歌电子表格从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 :(得分:0)
21.68实际上是正确的结果。 当您进行刮擦时,您应始终考虑真实的服务器响应,而不是您在scree上看到的内容。
所以去看看真正的HTML。见下图(即你提到的页面)
以及为什么你会立即购买
所以写下这个
=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运行它也不会实际改变价格。