本篇内容主要讲解“基于Python怎么编写一个微博抽奖小程序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python怎么编写一个微博抽奖小程序”吧!
开发工具
Python版本:3.7.8
相关模块:
DecryptLogin模块;
DecryptLoginExamples模块;
以及一些python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
先睹为快
首先,pip安装一下DecryptLoginExamples模块:
pip install DecryptLoginExamples
然后简单写几行代码调用就ok啦:
from DecryptLoginExamples import clientconfig = { '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怎么编写一个微博抽奖小程序”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!