本篇内容主要讲解“基于Python怎么编写一个微博抽奖小程序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python怎么编写一个微博抽奖小程序”吧!
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']:
到此,相信大家对“基于Python怎么编写一个微博抽奖小程序”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。