python实现秒杀商品的微信自动提醒功能(代码详解)


Posted in Python onApril 27, 2020

技术实现原理:获取京东的具体的商品信息,然后再使用微信发送提醒

工具:需要两个微信号,这两个微信号互为好友

1.收集自己想要的商品url

我们就以京东来举例,获取京东的秒杀商品信息:

首先,我们在网页上打开京东,搜索我们想要的商品,这边我就以我最近买的东西为例子:

python实现秒杀商品的微信自动提醒功能(代码详解)

我们需要找到它的商品信息,需要打开浏览器的开发者模式,之后我们需要选择自己的配送地址,这个时候里面就发送一些接口请求:

python实现秒杀商品的微信自动提醒功能(代码详解)

我们选择一个有用的商品信息接口:

python实现秒杀商品的微信自动提醒功能(代码详解)

找到自己想要商品的信息接口,来判断它是否有货:

python实现秒杀商品的微信自动提醒功能(代码详解)

一般规则是:如果这个接口书籍里面有“无货”的字符信息,那就是缺货状态,否则就是有货状态,可以发送商品链接,进行购买。

我们现在已经成功获取到了商品的url信息,接下来就是设置微信了。

2.设置微信通知

微信通知我们需要两个微信号,一个作为发送方,一个作为接受方,这个两个账号需要互为好友。

注意:作为发送方的微信可能会有注册时间要求(微信好像设立了规则:如果晚于某一时间段注册的账号将不再具备网页微信登陆功能)

这边我们使用itchat模块进行模拟微信登陆:

import itchat
itchat.auto_login(hotReload=True)

hotload参数设置为True可以记住第一次登陆的状态,下一次就不需要扫码登陆了。

执行以上代码可以生成登陆二维码,你只需要扫码登陆就可以了。

接下来我们需要找到被通知的那个账号:

# 找到需要发送的对象
users = itchat.search_friends(name='神一样的男子')
print(users)

搜索好友信息可以使用好友的微信名字也可以使用备注名字,接下来我们获取发送对象的信息:

[{'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

# 获取发送对象的ID
userName = users[0]['UserName']

接下来我们就可以实现发送秒杀信息了。

3.实现抢货通知

首先我们需要访问京东的数据接口-----也就是我们第一步拿到的那个url,接下来我们去访问它就可以拿到返回的接口数据:

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发送抢购信息:

if (response.text.find('无货') > 0):
 print('暂时无货: ' + skuidUrl)
else:
 print('你定时的抢购商品有货啦,点击立即购买 :' + skuidUrl)
 itchat.send("你定时的抢购商品有货啦,点击立即购买:\n{}".format(skuidUrl),
    toUserName=userName)
 flag += 1

这个抢购信息我们需要在原来的url上截取skuid,然后进行拼接:

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 相关文章推荐
Python多线程学习资料
Dec 19 Python
Python查看多台服务器进程的脚本分享
Jun 11 Python
Python实现的石头剪子布代码分享
Aug 22 Python
详解Python的Django框架中的中间件
Jul 24 Python
python实现爬虫统计学校BBS男女比例(一)
Dec 31 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
Python使用cx_Oracle模块操作Oracle数据库详解
May 07 Python
对python中两种列表元素去重函数性能的比较方法
Jun 29 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
Pyside2中嵌入Matplotlib的绘图的实现
Feb 22 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 29 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 #Python
python异步Web框架sanic的实现
Apr 27 #Python
python库skimage给灰度图像染色的方法示例
Apr 27 #Python
python实现密度聚类(模板代码+sklearn代码)
Apr 27 #Python
Django中文件上传和文件访问微项目的方法
Apr 27 #Python
详解Python中namedtuple的使用
Apr 27 #Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 #Python
You might like
星际争霸任务指南——神族
2020/03/04 星际争霸
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
javascript 打印内容方法小结
2009/11/04 Javascript
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
Python 登录网站详解及实例
2017/04/11 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
机关作风建设工作总结
2014/10/23 职场文书
技术员岗位职责范本
2015/04/11 职场文书
企业催款函范本
2015/06/24 职场文书
学生会部长竞选稿
2015/11/19 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python
python 算法题——快乐数的多种解法
2021/05/27 Python
一行Python命令实现批量加水印
2022/04/07 Python