抓取京东某商品价格并发送微信通知

昨天刚刚成功的获取了微博更新并给好友发信息通知,今天就将昨天的代码重新调整了一下以对京东的某商品价格进行爬取,若降价便发送微信。

主要功能的实现跟昨天的大同小异,主要问题是对于京东某商品价格的获取。

本来想着京东的价格直接从content里就能获得,可是用re获取之后发现是空值,没想明白怎么回事,查看网页源代码发现该位置确实没有价格

<span class="p-price"><span>¥</span><span class="price J-p-1279836"></span></span> 

后来上网查了查,原来JD的商品价格是通过JS来传递的,所以html页面中无法获取。看到别的博主用F12,抓取网络信息,获取到mget请求,而我的mget请求响应只返回一个sk值。

在近半小时的思考中突然恍然大悟,会不会是这个界面没有访问那个price的界面,导致无法抓取到mget请求?

后来返回到搜索页,再次进行network的抓取,结果如下:

终于获得了商品的价格url,此时只需要将url换成刚刚得到的url,然后对初始化一个价格,设置查询时间。每次查询时若当前价格低于初始设定的价格,便发送微信给指定用户,并修改最低价格为当前价格。这样若日后有更低的价格才会进行通知,否则无操作。

其实这个脚本的拓展也和昨天差不多,可以针对不同的商品指定一个商品列表,也可以针对不同的用户设定不同的关注列表。若某一用户的某一个商品降价,则从好友列表中查询该好友,并发送该商品降价信息,也可以将该商品的购买url一并发送给用户。

还可以调用用户输入动态添加商品及对应用户,这样一个较为完善的价格提醒脚本就实现了。具体功能实现等需求的人多了再考虑开发吧~


点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注

[2;3Rer>