python教程

Python百度贴吧一键自动签到脚本

精准像素 2021-06-10 人阅读

Python贴吧签到脚本介绍

相较于本地版本,此脚本新添了延时功能以防签到过快,并将代码放置在main函数中以提供入口(不再显示执行错误)

更新说明

4.18  可设置验证码错误的最大尝试次数;server酱推送更加详细;补充了云函数收费的说明。
4.30  历史版本
5.16  随机休眠几秒
6.14  开始研究模拟客户端而非网页签到(遇到难以解决的“目录出错”问题,可能要咕很久)

Python脚本源码

# -*- coding: utf8 -*-
from requests import Session
from time import sleep
def main(*args):
# 数据
like_url = 'https://tieba.baidu.com/mo/q/newmoindex?'
sign_url = 'http://tieba.baidu.com/sign/add'
tbs = '4fb45fea4498360d1547435295'
head = {
'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',
'Cookie':
'BDUSS=你的BDUSS;STOKEN=你的STOKEN',
'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'}
s = Session()
# 获取关注的贴吧
bars = []
dic = s.get(like_url, headers=head).json()['data']['like_forum']
for bar_info in dic:
bars.append(bar_info['forum_name'])
# 签到
already_signed_code = 1101
success_code = 0
need_verify_code = 2150040
already_signed = 0
succees = 0
failed_bar = []
n = 0
retry_count = 0
max_retry = 5 # 因需要验证码而重试的最大次数
while n < len(bars):
sleep(0.5)
bar = bars[n]
data = {
'ie': 'utf-8',
'kw': bar,
'tbs': tbs
}
try:
r = s.post(sign_url, data=data, headers=head)
except Exception as e:
print(f'未能签到{bar}, 由于{e}。')
failed_bar.append(bar)
continue
dic = r.json()
msg = dic['no']
if msg == already_signed_code: already_signed += 1; r = '已经签到过了!'
elif msg == need_verify_code and retry_count <max_retry: n -= 1; retry_count += 1; r = f'需要验证码,即将重试!({retry_count}/{max_retry})'
elif msg == need_verify_code: r = '验证码错误,跳过!'; retry_count = 0
elif msg == success_code: r = f"签到成功!你是第{dic['data']['uinfo']['user_sign_rank']}个签到的吧友,共签到{dic['data']['uinfo']['total_sign_num']}天。"
else: r = '未知错误!' + dic['error']
print(f"{bar}:{r}")
succees += 1
n += 1
l = len(bars)
failed = "n失败列表:"+'n'.join(failed_bar) if len(failed_bar) else ''
message = f'''共{l}个吧,其中{succees}个吧签到成功,{len(failed_bar)}个吧签到失败,{already_signed}个吧已经签到。失败列表:{failed}'''
print(message)
s.get(f"https://sc.ftqq.com/你的码.send?text={message}")# [未测试]Server酱推送,不需要则删除此行
retry_count = 0
max_retry = 5 # 因需要验证码而重试的最大次数
while n < len(bars):
sleep(0.5)
bar = bars[n]
data = {
'ie': 'utf-8',
'kw': bar,
'tbs': tbs
}
try:
r = s.post(sign_url, data=data, headers=head)
except Exception as e:
print(f'未能签到{bar}, 由于{e}。')
failed_bar.append(bar)
continue
dic = r.json()
msg = dic['no']
if msg == already_signed_code: already_signed += 1; r = '已经签到过了!'
elif msg == need_verify_code and retry_count <max_retry: n -= 1; retry_count += 1; r = f'需要验证码,即将重试!({retry_count}/{max_retry})'
elif msg == need_verify_code: r = '验证码错误,跳过!'; retry_count = 0
elif msg == success_code: r = f"签到成功!你是第{dic['data']['uinfo']['user_sign_rank']}个签到的吧友,共签到{dic['data']['uinfo']['total_sign_num']}天。"
else: r = '未知错误!' + dic['error']
print(f"{bar}:{r}")
succees += 1
n += 1
l = len(bars)
failed = "n失败列表:"+'n'.join(failed_bar) if len(failed_bar) else ''
message = f'''共{l}个吧,其中{succees}个吧签到成功,{len(failed_bar)}个吧签到失败,{already_signed}个吧已经签到。失败列表:{failed}'''
print(message)    s.get(f"https://sc.ftqq.com/你的SCKEY.send?text={message}")# [未测试]Server酱推送,不需要则删除此行

云函数设置方法

有了脚本就要挂到白嫖云服务器上来实现自动签到
Step1. 注册账号,过程略。网址:https://console.cloud.tencent.com/
Step2. 进入云函数控制台的函数服务:https://console.cloud.tencent.com/scf/index?rid=1
Step3. 单击“新建”

Step4.

Python百度贴吧一键自动签到脚本
Python贴吧签到脚本截图

Step5.

Python百度贴吧一键自动签到脚本
Python贴吧签到脚本截图

Step6.

Python百度贴吧一键自动签到脚本
Python贴吧签到脚本截图

Step7. 测试一下函数运行情况。如若成功则应该能看到“测试成功”,输出与图示相似;失败则检查Cookie是否过期、填写错误以及网络状况。

Step8. 自动执行

Python百度贴吧一键自动签到脚本
Python贴吧签到脚本截图

Step9.如若关注贴吧个数过多,请自行修改超时时间(大约为0.7s*关注个数)

常见问题

1、 出现module 'index' has no attribute 'main_handler'
解决方法:仔细查看教程Step5----是不是漏了一步?

2、出现Task timed out after 3 seconds
解决方法:参照教程Step10.

3、云函数收费吗?
云函数不收费,但是有流量限制。详情参见:https://cloud.tencent.com/document/product/583/17299

4、常见错误:KeyError: 'like_forum'
cookie大致格式为:BDUSS=XXXXX; TOKEN=XXXXXX

相关专题
Python
Python
2020-11-19 105

Python专题为了整理了关于Python学习资料,包含Python入门视频教程,Python视频教程,Python电子书,Python手册下载等等.

相关推荐
  • Python云函数
  • Python脚本
  • Python抖音官方接口分享

    抓了两个抖音的接口,一个是官方新的解析接口,另一个是拼接测试出来一个未公开的查用户信息的接口,一起分享给大家。代码放到阿里云的函数计算,可以直接托管到公网(腾讯云的云函数还需要自己配置API网关)。代码import requestsimport reheaders = {&#39;Use...

    python教程 70 5个月前
  • Python和彩云自动签到云函数脚本分享

    教程说明一段Python和彩云自动签到云函数脚本,可领爱奇艺,腾讯,芒果等会员。腾讯云函数里面的执行时间调大点,要不执行不完,懂的朋友看。Python签到脚本import jsonimport requestsOpenLuckDraw = False # 是否开启自动幸运抽奖(首次免费, 第二次5积分/...

    python教程 15 1个月前
  • Python百度贴吧一键自动签到脚本

    Python贴吧签到脚本介绍相较于本地版本,此脚本新添了延时功能以防签到过快,并将代码放置在main函数中以提供入口(不再显示执行错误)更新说明4.18 可设置验证码错误的最大尝试次数;server酱推送更加详细;补充了云函数收费的说明。4.30 历史版本5.16 随...

    python教程 38 3个月前
  • Python无需认证QQ扫码登录脚本

    无需认证QQ扫码登录脚本python脚本,盗用JD的QQ登录,也可以改成其他网址。无需自己注册腾讯开发者,无需自己有一套网址去申请应用Get_QQ返回QQ号,也可以获取到QQ头像、好友等其他信息,请勿用于非法行为import requestsimport timefrom PIL import Imagedef...

    python教程 43 3个月前
  • 最新python织梦dedecms远程执行脚本

    织梦CMS是使用最多的CMS之 一,但是漏洞也非常多。分享一款python写的织梦远程文件包含漏洞。修复此漏洞方法,请见文章底部。织梦CMS漏洞代码#! /usr/bin/env python#coding=utf-8#Joseph(小续)import requestsimport sysimport redef main():try:url="...

    服务器配置 211 1年前
  • Python获取抖音关注列表封号账号脚本

    抖音关注人数到达上限5000个了,需要挑选出关注列表中被封号的账号取关,手动非常麻烦,可以用下面这段Python抖音脚本。需要手动去抖音创作者平台获取cookie,注意,只是封了头像的用户也会获取的,因为原理就是判断头像地址。import requestsimport jsonimport...

    python教程 56 3个月前