python实现秒杀商品的微信自动提醒功能
技术实现原理:获取京东的具体的商品信息,然后再使用微信发送提醒
工具:需要两个微信号,这两个微信号互为好友
如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。获取方式,私信小编 “ 资料 ”,即可免费获取哦!
1.收集自己想要的商品url
我们就以京东来举例,获取京东的秒杀商品信息:
首先,我们在网页上打开京东,搜索我们想要的商品,这边我就以我最近买的东西为例子:
我们需要找到它的商品信息,需要打开浏览器的开发者模式,之后我们需要选择自己的配送地址,这个时候里面就发送一些接口请求:
我们选择一个有用的商品信息接口:
找到自己想要商品的信息接口,来判断它是否有货:
一般规则是:如果这个接口书籍里面有“无货”的字符信息,那就是缺货状态,否则就是有货状态,可以发送商品链接,进行购买。
我们现在已经成功获取到了商品的url信息,接下来就是设置微信了。
2.设置微信通知
微信通知我们需要两个微信号,一个作为发送方,一个作为接受方,这个两个账号需要互为好友。
注意:作为发送方的微信可能会有注册时间要求(微信好像设立了规则:如果晚于某一时间段注册的账号将不再具备网页微信登陆功能)
这边我们使用itchat模块进行模拟微信登陆:
[code]import itchat itchat.auto_login(hotReload=True)
hotload参数设置为True可以记住第一次登陆的状态,下一次就不需要扫码登陆了。
执行以上代码可以生成登陆二维码,你只需要扫码登陆就可以了。
接下来我们需要找到被通知的那个账号:
[code]# 找到需要发送的对象 users = itchat.search_friends(name='神一样的男子') print(users)
搜索好友信息可以使用好友的微信名字也可以使用备注名字,接下来我们获取发送对象的信息:
[code][{'Uin': 0, 'UserName': '@131572fb0f21d053055ba1caebd1c3089178a1ccafbf320bb72599c4d04a7e20', 'NickName': '吾', 'HeadImgUrl': '/cgi-bin/mmwebwx-bin/webwxgeticon?seq=670180178&username=@131572fb0f21d053055ba1caebd1c3089178a1ccafbf320bb72599c4d04a7e20&skey=@crypt_32bfc8c4_05d6f5196800a0aba56d8b80af69f09e', 'ContactFlag': 1, 'MemberCount': 0, 'MemberList': [], 'RemarkName': '神一样的男子', 'HideInputBarFlag': 0, 'Sex': 1, 'Signature': '消失在黑暗中', 'VerifyFlag': 0, 'OwnerUin': 0, 'PYInitial': 'W', 'PYQuanPin': 'wu', 'RemarkPYInitial': 'SYYDNZ', 'RemarkPYQuanPin': 'shenyiyangdenanzi', 'StarFriend': 0, 'AppAccountFlag': 0, 'Statues': 0, 'AttrStatus': 33657021, 'Province': '上海', 'City': '黄浦', 'Alias': '', 'SnsFlag': 1, 'UniFriend': 0, 'DisplayName': '', 'ChatRoomId': 0, 'KeyWord': '', 'EncryChatRoomId': '', 'IsOwner': 0}]
我们发送信息需要获取UserName字段,也就是发送对象的具体ID
[code]# 获取发送对象的ID userName = users[0]['UserName']
接下来我们就可以实现发送秒杀信息了。
3.实现抢货通知
首先我们需要访问京东的数据接口-----也就是我们第一步拿到的那个url,接下来我们去访问它就可以拿到返回的接口数据:
[code]import requests url = "https://c0.3.cn/stock?skuId=60456599372&area=2_2825_51932_0&venderId=10181278&buyNum=1&choseSuitSkuIds=&cat=9987,830,863&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=479124268&ch=1&callback=jQuery3588468" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/531.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", "Connection": "keep-alive" } respone = requests.get(url, headers=headers) print(respone.text)
拿到数据之后我们就可以去判断这个数据里面有没有“无货”的字符,如果没有我们就使用itchat发送抢购信息:
[code]if (response.text.find('无货') > 0): print('暂时无货: ' + skuidUrl) else: print('你定时的抢购商品有货啦,点击立即购买 :' + skuidUrl) itchat.send("你定时的抢购商品有货啦,点击立即购买:\n{}".format(skuidUrl), toUserName=userName) flag += 1
这个抢购信息我们需要在原来的url上截取skuid,然后进行拼接:
[code]import re pattern = re.compile("skuId=(\d+)&") url = "https://c0.3.cn/stock?skuId=60456599372&area=2_2825_51932_0&venderId=10181278&buyNum=1&choseSuitSkuIds=&cat=9987,830,863&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=479124268&ch=1&callback=jQuery3588468" result = pattern.findall(url) skuidUrl = 'https://item.jd.com/' + result[0] + '.html'
这样我们的定时抢购就完成啦!
最后,我们可以在访问的外面设置一个while死循环,如果一直没有货就一直发送访问请求,如果OK,就跳出break!
附抢购图:
大家只需要点击抢购链接就能直接进行购买啦!
- 点赞
- 收藏
- 分享
- 文章举报
- 使用Python实现企业微信的自动打卡功能
- python实现微信自动回复功能
- Python实现的微信红包提醒功能示例
- 利用python微信库itchat实现微信自动回复功能
- python+selenium实现京东自动登录及秒杀功能
- python实现12306抢票及自动邮件发送提醒付款功能
- 使用Python制作自动推送微信消息提醒的备忘录功能
- 使用Python实现微信提醒备忘录功能
- python实现微信自动回复及批量添加好友功能
- python实现微信机器人: 登录微信、消息接收、自动回复功能
- python微信库itchat如何实现微信自动回复功能的代码实例
- 10分钟教你用Python实现微信自动回复功能
- python实现微信自动回复及接入聊天机器人等功能
- (分享)在myeclipse上安装spket插件,实现js自动提醒功能
- python实现微信发送邮件关闭电脑功能
- 基于Python实现通过微信搜索功能查看谁把你删除了
- python 实现微信自动回复(自动聊天)
- 微信小程序实现客服默认自动回复功能
- python实现京东秒杀功能
- 基于Python实现通过微信搜索功能查看谁把你删除了