基于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
0
投稿
猜你喜欢
- 防止Application对象在多线程访问中出现错误asp代码处理代码如下(VB):<%Application.Lock()Appli
- 使用实例引用类的属性时,会发生动态绑定。即python会在实例每次引用类属性时,将对应的类属性绑定到实例上。动态绑定的例子:class A:
- 终于下决心把python从2.7升到了3.7。懒人安装当然使用Anaconda。安装成功,编译成功。但是用pip 安装包的时候提示:pip
- 背景:使用python脚本传递参数在实际工作过程中还是比较常用,以下提供了好几种的实现方式:一、使用sys.argv的数组传入说明:使用sy
- 注:本文所指的YUV均为YUV420中的I420格式(最常见的一种),其他格式不能用以下的代码。位深为8bit时,每个像素占用1字节,对应文
- 从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返
- 公司在codereview的时候限制了看代码的时间,实际上不少代码属于框架自动生成,并不需要花费太多时间看,为了达标,需要刷点时间(鼠标点击
- 本文实例讲述了Python自然语言处理 NLTK 库用法。分享给大家供大家参考,具体如下:在这篇文章中,我们将基于 Python 讨论自然语
- vbscript脚本中,fso对象CreateTextFile方法调用时可能会报“无效的过程调用或参数”错误,在使用ASP生成静态页面时,如
- Bootstrap提供了四种用于<img>类的样式,分别是:.img-rounded:圆角 (IE8 不支持),添加 borde
- 运行环境由于这是一个Python语言的软件包,因此需要你的机器上首先安装好Python语言的环境。关于这一点,请自行在网络上搜索获取方法。关
- 在Linux中,可以使用nohup将脚本放置后台运行,如下:nohup python myscript.py params1 > no
- Fibonacci斐波那契数列,很简单,就是一个递归嘛,学任何编程语言可能都会做一下这个。最近在玩Python,在粗略的看了一下Learni
- 配置Laravel 的邮件服务可以通过 config/mail.php 配置文件进行配置。邮件中的每一项都在配置文件中有单独的配置项,甚至是
- 1. void ellipse(InputOutputArray img, Po
- Windows环境: (1)离线安装 首先在线搜索并下载你需要的第三方库:网址https
- 最小生成树的Prim算法也是贪心算法的一大经典应用。Prim算法的特点是时刻维护一棵树,算法不断加边,加的过程始终是一棵树。Prim算法过程
- 使用jmail组件发送邮件:Function JMail(Send_From,Send_To,Send_Subject,Send_
- 简单的模型例如线性回归,LR等模型非常易于解释,但在实际应用中的效果却远远低于复杂的梯度提升树模型以及神经网络等模型。现在大部分互联网公司的
- 就目前互联网上大小网站而言,大部分都是采用ASP+ACCESS/SQL Server或者PHP+MySQL来编写;事实上,ASP和MySQL