前言

如题,最近闲着没事,研究出了模拟客户端签到的脚本。

使用

注册账号,过程略。网址:
https://console.cloud.tencent.com/

进入云函数控制台的函数服务:
https://console.cloud.tencent.com/scf/index?rid=1

  1. 单击“新建”
  2. 如图(BDUSS及STOKEN获取见附录,粘贴代码时留下它原来的第一行)

python代码:


from requests import session
from hashlib import md5
from random import random
from time import sleep
class Tieba():
def __init__(self, BDUSS, STOKEN):self.BDUSS = BDUSSself.STOKEN = STOKENself.count = [0, 0, 0] # 签到成功, 已经签到, 总self.session = session()self.session.headers.update({'Accept': 'text/html, */*; q=0.01','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8','Connection': 'keep-alive','Host': 'tieba.baidu.com','Referer': 'http://tieba.baidu.com/i/i/forum','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/71.0.3578.98 Safari/537.36','X-Requested-With': 'XMLHttpRequest'})
def set_cookie(self):self.session.cookies.update({'BDUSS': self.BDUSS, 'STOKEN': self.STOKEN})
def fetch_tbs(self):r = self.session.get('http://tieba.baidu.com/dc/common/tbs').json()if r['is_login'] == 1: self.tbs = r['tbs']else: raise Exception('获取tbs错误!以下为返回数据:' + str(r))
def fetch_likes(self):self.rest = set()self.already = set()r = self.session.get('https://tieba.baidu.com/mo/q/newmoindex?').json()if r['no'] == 0:for forum in r['data']['like_forum']:self.count[2] += 1if forum['is_sign'] == 1:self.already.add(forum['forum_name'])else:self.rest.add(forum['forum_name'])else: raise Exception('获取关注贴吧错误!以下为返回数据:' + str(r))
def sign(self, forum_name):data = {'kw': forum_name,'tbs': self.tbs,'sign': md5(f'kw={forum_name}tbs={self.tbs}tiebaclient!!!'.encode('utf8')).hexdigest()}r = self.session.post('http://c.tieba.baidu.com/c/c/forum/sign', data).json()if r['error_code'] == '160002':print(f'"{forum_name}"已签到!')self.count[1] += 1return Trueelif r['error_code'] == '0':print(f'"{forum_name}"签到成功,您是第{r["user_info"]["user_sign_rank"]}个签到的用户!') # Modify!self.count[0] += 1return Trueelse:print(f'"{forum_name}"签到失败!以下为返回数据:{str(r)}')return False
def loop(self, n):print(f'* 开始第{n}轮签到 *')rest = set()self.fetch_tbs()for forum_name in self.rest:sleep(random() * 3)flag = self.sign(forum_name)if not flag: rest.add(forum_name)self.rest = rest
def main(self, max):self.set_cookie()self.fetch_likes()n = 0if self.already:print('* 已经签到的贴吧 *')for forum_name in self.already:print(f'"{forum_name}"已签到!')self.count[1] += 1while n < max and self.rest:n += 1self.loop(n)print('* 本日签到报告 *')print(f'共{self.count[2]}个贴吧,其中签到成功{self.count[0]}个,已经签到{self.count[1]}个,签到失败{len(self.rest)}个。')if self.rest:print('* 签到失败列表 *')for forum_name in self.rest:print(f'"{forum_name}"签到失败!')
def main_handler(*args):
with open('BDUSS.txt') as f: BDUSS = f.read()
with open('STOKEN.txt') as f: STOKEN = f.read()
task = Tieba(BDUSS, STOKEN)
task.main(3)
# 不需要推送的删除以下几行
if task.rest:message = f'以下为未完成列表:'for forum in task.rest: message += '\n' + forumdata = {'text': '签到未完全完成!', 'desp': message}post('https://sc.ftqq.com/你的key.send', data=data)```

如图:

回到此界面,点击"测试"(应该会自动部署,如提示请先部署就先部署一下)

  1. 如若成功,应该能看到“测试成功”,输出签到的详细信息,可以进入下一步;如若失败,查看是否复制粘贴出错,无误仍出错请参照附录。
  2. 设置自动执行
    表达式:0 0 1 * * * *

附录/Q&A

  1. BDUSS及STOKEN的获取(以Edge浏览器为例)登录任一百度产品,例如百度一下如图打开cookie界面

在"baidu.com/Cookie"下找到"BDUSS",复制其内容

在"passport.baidu.com/Cookie"下找到"STOKEN",复制其内容

  1. [b]注意:粘贴到txt文件中时只能一行,如果出现行号为"2"的空行请删除,否则会出错
  • 常见错误超时
    a. 是否进行了教程的步骤5?b. 尝试删除"index.py"的第65行(sleep(random() * 3))和第5行(from time import sleep)c. 仍然超时则关注贴吧个数过多,可以自行修改代码及增加触发器,分次签到,这里不再深入。获取关注贴吧错误a. 两个txt文件最后是否有空行b. 是否复制了正确的项到正确的txt,完成后有没有保存c. 如果这无法解决问题,那重新登录后再次获取d. 再不行的话我也没办法{:301_971:}

利用Python实现某度贴吧签到脚本「云函数模拟客户端」相关推荐

  1. python京东自动签到_利用python Selenium实现自动登陆京东签到领金币功能

    如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个.密码的形 ...

  2. python京东自动签到领金豆_[宜配屋]听图阁 - 利用python Selenium实现自动登陆京东签到领金币功能...

    如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个.密码的形 ...

  3. Cloud Computing:基于无影云电脑利用Python语言实现绘制“可爱小老虎”虎年快乐及无影云电脑简介、应用场景、使用体验(五步快速上手)分享图文教程之详细攻略

    Cloud Computing:基于无影云电脑利用Python语言实现绘制"可爱小老虎"虎年快乐及无影云电脑简介.应用场景.使用体验(五步快速上手)分享图文教程之详细攻略 目录 无 ...

  4. 利用Python完成华氏度和摄氏度的转换

    1 问题 利用python如何完成华氏度和摄氏度的转换. 2 方法 Tempstr = input('请输入一个带有符号的温度值:')#输入带单位温度值 if Tempstr[-1] in ['c', ...

  5. 利用Python来制作网易阴阳师的游戏脚本,爆肝是不可能爆肝的

    大家好. 近日来,一款名为阴阳师的游戏引诱了我,使我沉迷于网络游戏,日渐消瘦的我,荒废了时日,忘记了社会主义接班人的使命,忘记了构建人类命运共同体的伟大抱负. 为了挽救我美好的青春,为了挽救我的人生, ...

  6. python自动化处理,获得免费wps会员,云函数2021.4.25反馈失效(以后不进行此文章维护了)

    2021.2.18 2021.2.20更新: 现在邀请过快会被过滤,一秒钟邀请10个人只算一个,要手动添加time.sleep(10)每次邀请延时十秒,即可继续使用. 2021.2.21更新: 更新云 ...

  7. Python Flask web 项目零改动迁移至阿里云函数计算

    引言 最近尝试了一下阿里云的函数计算,整体感觉很好,主要是省钱!下面就简单聊一下,如何将 Python Flask 的 web 项目迁移至函数计算. 创建一个银行卡校验的 RestAPI 文件名:in ...

  8. 利用python 对比相似度_头条、油条商标有多像?Python检测发现相似度高达98.4%

    " 近日,一家名叫"今日油条"的店铺,因被今日头条起诉而广为大众所知,就这样火了一把. " 这家油条店可是把今日头条从里到外模仿的透透的,无论是logo.配色还 ...

  9. 利用python 对比相似度_牛逼了,利用Python实现“天眼系统”,只要照片就能了解个人信息...

    前言 在有一些电影里面,特别是科幻高科技电影里面经常出现的一幕,获得某人的照片然后进行各种数据对比,然后找出这个人的个人信息:姓名.年龄.性别.工作等等. 理论上:你可以建立一个你感兴趣的百万级的数据 ...

  10. 利用python编写一个pc模拟器明日方舟脚本

    前言 首先,我知道通过按键精灵等插件实现类似的效果,但是我主要是无聊了想写一个.. 其次,更关键的是,该脚本除了可以自动刷图+自动嗑体力药剂以外,还能够在体力药剂用完的时候,不会碎石去恢复体力哦!(即 ...

最新文章

  1. python综合作业题目_python作业 1、2、3 题
  2. python拿什么做可视化界面好-手把手教你用Python做个可视化的“剪刀石头布”小游戏...
  3. java des zero_android----Java DES加密算法工具类
  4. 二叉树的遍历 (递归和非递归实现)
  5. 基于Qt的光盘刻录开发
  6. 结构变量的定义和引用
  7. 动画编辑器和骨骼动画使用
  8. Django笔记 —— 表单(form)
  9. html 单选框_HTML
  10. Tomcat 设置系统默认文件编码
  11. AXI总线(top)
  12. PYTHON混淆器 pyobfuscate
  13. spline本地运行的方法
  14. 百度AI开放平台,共建AI生态
  15. 3060ti适配的cuda和cudnn
  16. php如何计算天数,php计算日期相差天数二种方法
  17. 使用MATLAB2010实现AVI视频播放
  18. paly 获取数据库的第一条数据
  19. 电脑桌面怎么添加HTML,电脑上怎么把浏览器网页添加到桌面
  20. 使用笔记:AWTK中文键盘按键字体加大

热门文章

  1. 其于js的五笔输入法!
  2. 微型计算机原理(第六版)姚向华编著(转载请注明出处---https://www.cnblogs.com/qingl)...
  3. 数据库表同义词mysql修改_SQLServer中同义词Synonym的用法
  4. 服务器中的软件如何备份文件夹在哪里找,itunes备份文件在哪,如何找到itunes的备份文件...
  5. 02_如何计算叔块奖励
  6. 类抽屉问题的C++解决
  7. 透过散射介质的成像matlab,基于解卷积透过散射介质大视场成像恢复方法
  8. 【机器学习实战系列】读书笔记之AdaBoost算法公式推导和例子讲解(一)
  9. DirectX12(D3D12)基础教程(一)——基础教程
  10. win10开始菜单 此计算机,如何将win10电脑中的开始菜单设置成智能版