Python+爬虫+微信机器人 打造属于你的网购价格监督利器!

本文介绍了如何使用Python爬虫配合微信机器人,实时监控Nike NBA专区的球衣价格变动。通过分析网页,获取JSON数据,并利用递归获取所有商品URL,最后通过itchat微信机器人实现价格变动提醒。
摘要由CSDN通过智能技术生成

写在最前

程序是为人类服务的,最近正好身边小伙伴们在做球衣生意,当然是去nikenba专区购买了,可是有些热门球衣发布几分钟就被抢完,有些折扣球衣也是很快就被抢售一空,那么我们只能靠自己的眼睛一直盯着网站吗?NoNoNo,作为计算机专业的学生,怎么能为这种事情浪费时间呢?那肯定想法就是写爬虫自动比对价格啊,后来又在想,爬虫数据也是在PC端啊,该怎么实时提醒我们呢?再弄一个微信机器人发送数据不就可以了吗?说干就干,代码开撸

先看下效果:

 

准备工作:

首先本文使用py3,需要安装以下库:

1)itchat

2)requests

3)apscheduler

分析网页:

首先我们需要做什么?毫无疑问,分析网页,因为最重要的一步就是获取数据,那么如何获取数据就是我们首先要克服的困难

附上 nike nba专区地址:https://www.nike.com/cn/w/nba-sleeveless-and-tank-tops-18iwiz9sbux

首先我们要明确一个地方,我们的目的是实时监控热门打折球衣,所以我们的价格肯定首先降序排列,不过先不用着急,打开F12先看下调试器,对了我使用的是chrome浏览器

 

由于我们是先打开网页再打开调试窗口,所以目前我们看不到数据,别急,我们刷新一下再看

哦吼,完蛋,怎么这么多东西貌似根本没法看

 

别急 继续分析,作为一个学(qiong)生(bi),我们肯定先关注价格了,当然要升序排列啊!

好的 点下浏览器调试窗口中的清除按钮(就是下面这个蓝色标记的按钮)先清除下调试台中的数据 然后呢我们点下筛选方式价格由低到高(红色标记的菜单键中选择)

 

得到调试台如下,完蛋了还是一堆怎么办?

 

没关系,至少现在网页内容已经是按照价格升序排列了,我们再来看看得到的Network数据,挨个点一点看看,发现当点到名称为graphql开头的文件里去时候,有东西出现了

里面的响应内容出现了几个熟悉的队名称和球员名称甚至还有价格,等等,这不就是我们要的数据吗?

 

看来我们找对了地方,我们双击点开graphql开头的网页文件看看会有什么呢?。。。看起来杂乱无章,但是貌似确实是我们要的数据,是json格式的

 

在网页上看json简直是折磨,好的,我们用python开始把这个网页内容给弄下来仔细研究下

pycharm开搞

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
 
import requestsimport json''''''#刚刚在调试台得到的地址url='https://www.nike.com/w/graphql?queryid=filteredProductsWithContext&anonymousId=A54CD5202A87B54B4415AD4BC11E5692&uuids=1c7c3d67-5d46-432d-9910-b1128d1b6503,e09eabe9-5ff0-42af-b0a3-5f68af19d89a&language=zh-Hans&country=CN&sortBy=priceAsc'#使json数据格式化输出更好观察def better_jsprint(json_obj): # 使用indent=4 这个参数对json进行数据格式化输出 #因为json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False return json.dumps(json.loads(json_obj),indent=4,ensure_ascii=False)response=requests.get(url)print(better_jsprint(response.text))

看看输出什么:

 

这样看起来好多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值