导语:

今天就为大家带来如何实现自动抽奖,解放双手。

需要知识

  • 会利用charles对手机进行抓包

  • 会用requests库

嗯,就需要这么多知识。如果不会抓包的话请自行百度,这里就不一一展开说了。

1.分析页面

我们先打开charles进行准备,然后打开小程序抽奖助手的首页,可以看到有每日福利和自助福利两个专栏,自助福利的下端还有个加载更多的按钮,这些都是我们需要进行模拟请求的。

现在就可以去看看charles里面抓包的数据,很容易就发现下面这几个请求都是一一对应上面的图片的数据的。

获得每日福利的奖品数据的请求url为https://lucky.nocode.com/public_lottery?page=1&size=5,而获得自助福利的奖品数据的请求url为https://lucky.nocode.com/square,点击加载更多的请求url为https://lucky.nocode.com/square?cursor=355&start=447,只是比上面的多了两个参数,三个url请求方式都是get,可以说是基本不会变的url。这里需要注意的是,我们在请求时,添加请求头需要带上authorization参数,这个翻译过来时授权的意思,其实就是用来验证身份的,可以说通过加上这个就是登陆上了微信。

接下来就是看看如何点击抽奖按钮之后是如何请求的了。

我们先点击下每日福利的抽奖,在charles可以看到这个请求

请求url为https://lucky.nocode.com/lottery/奖品id/join,url和变化的,里面有该奖品的id,请求方式是post,from-data里面的数据根据经验可以知道这是个13位的时间戳。这个搞定了,再看看自助福利的有什么不用。

可以看到,请求的都是一样的,就不多说了。

2.代码实现

这个是获取每日福利的实现

def __get_public_draw(self):url = 'https://lucky.nocode.com/public_lottery?page=1&size=5'response = requests.get(url, headers=self.headers, verify=False)if response.status_code == 200:for prize in response.json()['data']:if not prize['joined'] and '不满足' not in prize.get('condition_error', '1'):yield prize['id'], prize['prizes']['data'][0]['name']else:print('请求失败,状态码为%s' % response.status_code)

这里需要注意的是,进行请求的时候需要带上参数verify关键字参数,这个是设置不验证证书,如果不设置就会报错

OpenSSL.SSL.Error: [('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')]

接着是自助福利的代码实现

ef __get_welfare(self):urls = ['https://lucky.nocode.com/square', 'https://lucky.nocode.com/square?cursor=293&start=394']for url in urls:response = requests.get(url, headers=self.headers, verify=False)if response.status_code == 200:for prize in response.json()['data']:if not prize['joined']:yield prize['id'], prize['initiator']['nick_name']

这里有两个url,第二个url里面的参数可以设置成固定的,其他的就不多说了。

最后还有自动抽奖的实现

def __draw_prize(self, prize):print('正在对%s的奖品进行抽奖' % prize[1])url = 'https://lucky.nocode.com/lottery/%s/join' % prize[0]data = {'form_id': int(time.time()*1000)}response = requests.post(url, data=data, headers=self.headers, verify=False).json()if response.get('data', 0):print('抽奖成功')else:print('抽奖失败')

因为time.time()的结果是带只有十位整数的float数值,所以需要乘于1000再取整数即可。其他的都没什么问题了。这个代码大家可以每天运行一次,这样就可以把所有的奖品基本都参数抽奖了,中不中是另外一回事啦~

end

这期分享就到这了~喜欢的铁汁们记得三连哦!家人们的支持是小编更新最大的动力

【懒人必备神器】教你用Python做一个自动抽奖程序啦~相关推荐

  1. 周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本

    相信想去周董演唱会的大家都用过大麦网抢票吧? 可是 抢不到啊 该说不说 我抢到了 那么,今天带大家用Python来制作一个自动抢票的脚本小程序! 知识点: 面向对象编程 selenium 操作浏览器 ...

  2. 周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!

    相信想去周董演唱会的大家都用过大麦网抢票吧? 可是 抢不到啊 该说不说 我抢到了 那么,今天带大家用Python来制作一个自动抢票的脚本小程序! 知识点: 面向对象编程 selenium 操作浏览器 ...

  3. 用python做一个自动签到程序

    背景:疫情期间,学校要求每天在上午10点之前填报信息.有时容易忘记填报,就会受辅导员惩罚. 我们用"i至诚"填报,所以这里用这个例子来图文演示如何实现自动签到功能. 程序中使用到的 ...

  4. python编写木马攻击_用Python写一个自动木马程序

    电脑作为大家日常办公的工具,最怕的一件事情之一就是被偷,当我们的电脑被盗的时候,不仅仅是电脑本身,更重要的是电脑存储的资料都会丢失.如何尽快的找回电脑需要我们想点办法,今天就教大家一个好的技巧,虽说不 ...

  5. irobot擦地机器人故障_懒人必备神器,电动高频擦地,科沃斯地宝T8 AIVI扫地机器人...

    虽说一屋不扫,何以扫天下,但扫地真的累,本来一天回到家就很累了,扫地拖地就需要半个小时,有时候床底桌底还清理不到,周末还要时不时的来一次全方位的大扫除,本来就难得的休息时间就浪费在了扫地拖地上了.好在 ...

  6. 黑客很酷?手把手教你用Python做一个

    前言 随着信息化时代的到来,人们对互联网接触越来越广泛,这样就使得很多人对于黑客充满向往,企图通过网络虚拟世界来做一些有趣的事情. 所以今天我们要说的工具就是:怎样利用Python做一个黑客软件. 众 ...

  7. 年会,用Python做了个 “抽奖程序”,boss奖励我一个红包!

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 含情欲说宫中事,鹦鹉前头不敢言. ...

  8. 年会,用 Python 做了个 “抽奖程序”,boss 奖励我一个红包!

    作者:小小明 文末获取完整代码 简介:Pandas 数据处理高手,10 余年编码经验,至今已帮助过百名以上数据从业人员解决工作实际遇到的问题,其中数据处理和办公自动化问题涉及的行业包括会计.审计.HR ...

  9. 用python做一个随机点名程序(不重复点名)

    用python做一个简单的随机点名程序(不重复点名) 这是我来到csdn的第一篇文章,内容如果有瑕疵的地方或者代码可以进一步改善,请大家对我指点一二.谢谢! 废话不多说,上代码! import ran ...

  10. 手把手教你用Python做一个哄女友神器,小白可上手

    大数据文摘出品 作者:诗风悠存.蒋宝尚 哄女朋友最高的境界是什么? 除了用心之外,每天不重复的甜言蜜语必然是少不了的.虽然语文老师上学的时候也教了一些东西,但是日子长了必然"江郎才尽&quo ...

最新文章

  1. csla java_Csla框架之命令对象理解
  2. Spark 0.8 集群(CentOS6.4)-简单统计测试
  3. 3.Ubuntu18.04取消警告音
  4. leetcode 64. 最小路径和
  5. # EXP8 Web基础
  6. matlab 将一堆文件名读到一个文本里面windows版本里
  7. 我是新来的,希望大家以后能多指教.
  8. php数据库框架 edusoho,CentOS 6.x + Apache+ PHP + MySQL + EduSoho[文档]
  9. word2016 删除页眉横线
  10. C语言如何求球的体积和表面
  11. python画名侦探柯南_Python实战爬B站 | 帮你梳理柯南主线剧情+弹幕
  12. vue3的抽离封装方法
  13. 清理docker产生的垃圾文件
  14. MPC与LQR的详细对比分析
  15. [k8s]如何处理dockerfile无expose情况下在k8s里暴漏访问
  16. 给定3个数字,求出这3个数字中的最大数,并输出最大数
  17. GPS时钟系统,GPS同步时钟系统
  18. 趁着中秋节来临之际,学学如何做好团队管理
  19. SQL注入的原理、过程及如何防范
  20. tools1.0.1

热门文章

  1. 应用案例 | 星舆高精度追踪器在车辆调度管理中的应用案例
  2. JavaScript执行顺序分析
  3. 计算机excel教程ppt,计算机应用基础教程ppt课件 全套450页.ppt
  4. 语言学及应用语言学类毕业论文文献有哪些?
  5. Python安全工具编写-密码爆破
  6. MaixII-Dock(v831)学习笔记——初识v831
  7. Static Asynchronous Component Misuse Detection for Android Applications
  8. android fresco的底层,Fresco源码分析之DraweeView
  9. 脸书隐藏了未能阻止滥用技术的官僚主义报道的失败
  10. 增值税税控设备(计算机打印机)全额抵扣,一般纳税人税控专用设备和技术费用抵减税额会计处理...