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中几个常用的类方法
Apr 08 Python
python实现图书馆研习室自动预约功能
Apr 27 Python
解决Python 中英文混输格式对齐的问题
Jul 16 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
Dec 22 Python
Python实现最大子序和的方法示例
Jul 05 Python
python递归法解决棋盘分割问题
Jul 17 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
Feb 07 Python
python+selenium+PhantomJS抓取网页动态加载内容
Feb 25 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
Python操作MongoDb数据库流程详解
Mar 05 Python
Python函数基本使用原理详解
Mar 19 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 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
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
详解Python:面向对象编程
2019/04/10 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
详解Python3 pickle模块用法
2019/09/16 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
基于Python 函数和方法的区别说明
2021/03/24 Python
大学生个人求职信范文
2013/09/21 职场文书
学校学雷锋活动总结
2014/06/26 职场文书
园林技术专业求职信
2014/07/28 职场文书
学校交通安全责任书
2014/08/25 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
销售助理岗位职责
2015/02/11 职场文书
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
python中pycryto实现数据加密
2022/04/29 Python