双十一在大家的疯狂购物中结束,今年双十一,天猫又一次的刷新了自己的战绩,全天的交易额达到了2684亿,大家的购买力实在是惊人。但是在如此大的购买过后,有些朋友却大呼自己“上当”啦。原因是在于他们认为天猫在双十一之前涨价,然后在双十一当天显示降价来欺骗消费者,而网上一搜,这样的文章可谓不在少数~~
事实真的是这样吗?为了让大家以后不在为这件事情困扰,也为了大家双十二能够真真正正的拿到优惠,今天小编就带领大家利用python来打造一款天猫商品价格监督器。
1.如何监控价格
如何进行价格上的监督呢,首先我们需要拿到这个商品的链接,注意的是,这里的链接不是淘口令,而是网页的链接地址,如下链接:
https://detail.tmall.com/item.htm?spm=a230r.1.14.4.495855e26sBKGG&id=596023065281&ad_id=&am_id=&cm_id=140105335569ed55e27b&pm_id=&abbucket=20
上述的链接中,我们可以得知商品的id为596023065281,这一点非常重要,因为有了商品的id,我们才能在后面调用接口返回商品的详细信息,有时候商品的链接中还有skuId的信息,这个skuId代表的是某一具体的商品。我们利用下面的程序,便可以获取到商品的id信息,并将id进行编码,组成新的链接来获取商品的详细信息。
接下来我们便爬取新的链接所返回的json数据,并获取我们需要的商品名称、价格等信息。部分程序如下图所示 :
上述的程序中我们将新的链接返回的json数据进行分析,并分别按照不同的情况进行数据获取,这里的情况包括商品是否是预售商品,商品的价格是否是浮动的,例如我们经常会看到某些商品价格是23.0~230.0的情况,或者是商品的规格可以被选择的情况。
我们按照不同的情况都进行相应的处理后,便提高了程序的稳定性,针对于不同的商品都能获得我们的价格和名称。
2.定时爬取
上述的程序完成后,接下来就是如何让程序按照我们既定的时间进行爬取,这里的话,大家不必时时刻刻不停的爬取,而是定时进行爬取就好,定时的话这里小编利用的是schedule模块进行定时爬取,大家可以设定每隔几个小时或者几分钟进行爬取。
为了给大家进行展示,小编设定的是每隔5分钟进行一次爬取,爬取的结果如下图所示:
3.可视化展示
当我们爬取到一定的时间段后,想要进行可视化,可以利用matplotlib库来进行价格的可视化展示,程序如下图所示:
我们最终的展示结果如下图所示:
如此一来,我们就可以做到商品价格的监控,大家可以在服务器上一直运行该程序,然后在一段时间后画出该商品的价格曲线,商品的价格动态便会被我们掌握。这样,我们就再也不怕价格的变化了。