基于Python编写一个微博抽奖小程序
作者:白露未晞me 发布时间:2023-04-02 16:40:00
标签:Python,微博,抽奖,程序
导语
带大家写个微博自动抽奖小程序吧,motivation和之前的B站自动抽奖小程序一样:
不想内卷了,整个B站全自动抽奖的小程序吧,万一不小心暴富了呢~
废话不多说,让我们愉快地开始吧~
开发工具
Python版本:3.7.8
相关模块:
DecryptLogin模块;
DecryptLoginExamples模块;
以及一些python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
先睹为快
首先,pip安装一下DecryptLoginExamples模块:
pip install DecryptLoginExamples
然后简单写几行代码调用就ok啦:
from DecryptLoginExamples import client
config = {
'username': 用户名,
'password': 密码,
'time_interval': 查询微博动态的间隔时间,
}
crawler_executor = client.Client()
crawler_executor.executor('weibolottery', config=config)
效果如下:
原理简介
整个实现流程和之前的这篇文章差不多:
不想内卷了,整个B站全自动抽奖的小程序吧,万一不小心暴富了呢~
具体而言,就是先获取自己微博的关注列表:
'''获得关注的用户列表'''
def getfollows(self, session):
page, targetid_list = 0, []
while True:
page += 1
response = session.get('https://m.weibo.cn/api/container/getIndex?containerid=231093_-_selffollowed&page={}'.format(page), headers=self.headers)
profile_urls = re.findall(r'"profile_url":"(.*?)"', response.text)
if len(profile_urls) == 0: break
for profile_url in profile_urls:
targetid_list.append(re.findall(r'uid=(.*?)&', profile_url)[0])
return targetid_list
然后定时检测自己关注的用户有没有发布新的抽奖信息就ok了:
# 每隔一段时间遍历一遍目标用户, 把有抽奖信息的微博都转发一遍
self.logging('初始化完成, 开始自动检测抽奖相关的微博')
while True:
for targetid in targetid_list:
print(f'正在检测用户{targetid}是否发布了新的抽奖微博')
weibos = self.getweibos(session, targetid)
for card in weibos:
if card['mblog']['id'] in repost_weibos_dict[targetid]:
continue
else:
repost_weibos_dict[targetid].append(card['mblog']['id'])
if '抽奖' in card['mblog']['text']:
self.logging(f'检测到一条疑似含有抽奖信息的微博: {card}')
# 自动点赞
card_id = card['mblog']['id']
response = session.get('https://m.weibo.cn/api/config')
st = response.json()['data']['st']
flag, response_json = self.starweibo(session, st, card_id, targetid)
if flag:
self.logging(f'自动点赞ID为{card_id}的微博成功')
else:
self.logging(f'自动点赞ID为{card_id}的微博失败, 返回的内容为 >>>\n{response_json}')
# 自动转发+评论
flag, response_json = self.repost(session, st, card_id)
if flag:
self.logging(f'自动转发+评论ID为{card_id}的微博成功')
else:
self.logging(f'自动转发+评论ID为{card_id}的微博失败, 返回的内容为 >>>\n{response_json}')
print(f'检测用户{targetid}是否发布了新的抽奖微博完成')
time.sleep(self.time_interval)
其中,判断这条微博是否属于抽奖微博的方式是:
if '抽奖' in card['mblog']['text']:
即微博正文中存在抽奖这两个字的时候,我们就对该微博进行点赞,自动转发和评论操作,所以可能存在误转的情况。不过这玩意应该是属于宁滥勿缺吧。
ok,大功告成啦
来源:https://mp.weixin.qq.com/s/sGT4Pwp-yu2grNvSr3vafQ


猜你喜欢
- 一、当我们用Python matplot时作图时,一些数据需要以百分比显示,以更方便地对比模型的性能提升百分比。二、借助matplotlib
- (可能只有最后一句命令有用,可能全篇都没用)(小白方法,可能只适用于本人情况)安装matplotlib时,出现的三种失败情况1、read t
- 有时候让了解放双手,让电脑来帮我们自动发一些我们想要发的消息,挺省力的,比如说白天写好了演讲稿,晚上要在群里进行文字演讲,那么我们就可以用脚
- 本文从多个角度来讲解如何在Access数据库上如何上传并且显示上所上传图片。在 * 站制做过程中,需要上传图片、显示图片,上传的图片要能够保
- python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包。基本框架比较简单,但是做一个功能完善且比较好看整洁
- 最近在使用Testlink时,发现导入的用例是xml格式,且没有合适的工具转成excel格式,xml使用excel打开显示的东西也太多,网上
- 通常python安装包都会被默认装在/usr/local/pythonx/lib/site-packages(linux),但是我们有时想自
- _del_类的析构方法,它在对象被回收时执行,主要的作用时用来释放资源(内存 文件 进程等)因为Python内存回收机制,使得Python的
- 关于在windows下安装mysql 5.7•要注意的新坑:5.7版本安装后ROOT账号是有默认的密码的,这个密码在windows下可以在m
- Django中的静态文件夹static在创建好Django项目时默认是没有的,需要我们手动自己去创建,static文件夹里主要存放一些能暴露
- 目录前言一、常用命令二、嗅探数据包三、构造数据包四、各个协议用法五、发包,收包六、SYN半开式扫描七、数据包序列化,反序列化八、数据包与字符
- 前言因为经常一训练就是很多次迭代,所以找到效率比较高的操作能大大缩短运行时间,但这方面资料不足,所以自己记录总结一下,有需要再补充索引效率与
- 先看效果,实现一个图片左右摇动,在一般的H5宣传页,商家活动页面我们会看到这样的动画,小程序的动画效果不同于css3动画效果,是通过js来完
- 星爷的一部“国产007”应该是无人不晓,其中一个片段是将“007”向MM展示他的秘密武器。皮鞋可以吹头发,大哥大可以刮胡子……把真实功能隐蔽
- 本文实例讲述了python检测远程服务器tcp端口的方法。分享给大家供大家参考。具体如下:python检测远程服务器tcp端口的代码,这段代
- 该方是基于uiautomator2如下版本进行验证的:PS C:\windows\system32> pip show uiautom
- Mysql my.ini 配置文件详解 #BEGIN CONFIG INFO #DESCR: 4GB RAM, 只使用InnoDB, ACI
- 但凡有些事情重复时,我就在想怎么可以用程序来自动化。这里想分享如何每天给女友定时微信发送”晚安“,如果只是晚安,就略显单调,于是爬取金山词霸
- 从PDF读取文本内容和从已经有的文档生成新的PDF。需要用到的模块是PyPDF2.mstamy2/PyPDF2: A utility to
- 一、闭包1. 什么是闭包?在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生 闭包。闭包可以用来在一个函