Python编写的百度贴吧自动签到脚本
Python百度贴吧一键自动签到脚本是一种使用Python编程语言编写的自动化工具,用于实现在百度贴吧中自动完成签到操作。这种脚本通常通过模拟用户在浏览器中的操作来实现签到功能,例如点击按钮、输入验证码等。使用这种脚本可以节省用户手动签到的时间,提高签到效率。然而,需要注意的是,使用这类脚本可能违反了百度贴吧的使用规定,可能会导致账号被封禁。因此,在使用这类脚本时需要谨慎,并确保自己了解相关风险。
Python贴吧签到脚本介绍
相较于本地版本,此脚本新添了延时功能以防签到过快,并将代码放置在main函数中以提供入口(不再显示执行错误)
更新说明
4.18可设置验证码错误的最大尝试次数;server酱推送更加详细;补充了云函数收费的说明。
4.30历史版本
5.16随机休眠几秒
6.14开始研究模拟客户端而非网页签到(遇到难以解决的“目录出错”问题,可能要咕很久)
Python脚本源码
#-*-coding:utf8-*-fromrequestsimportSessionfromtimeimportsleepdefmain(*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(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)''Chrome/71.0.3578.98Safari/537.36','X-Requested-With':'XMLHttpRequest'}s=Session()#获取关注的贴吧bars=[]dic=s.get(like_url,headers=head).json()['data']['like_forum']forbar_infoindic:bars.append(bar_info['forum_name'])#签到already_signed_code=1101success_code=0need_verify_code=2150040already_signed=0succees=0failed_bar=[]n=0retry_count=0max_retry=5#因需要验证码而重试的最大次数whilen<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)exceptExceptionase:print(f'未能签到{bar},由于{e}。')failed_bar.append(bar)continuedic=r.json()msg=dic['no']ifmsg==already_signed_code:already_signed+=1;r='已经签到过了!'elifmsg==need_verify_codeandretry_count<max_retry:n-=1;retry_count+=1;r=f'需要验证码,即将重试!({retry_count}/{max_retry})'elifmsg==need_verify_code:r='验证码错误,跳过!';retry_count=0elifmsg==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+=1n+=1l=len(bars)failed="n失败列表:"+'n'.join(failed_bar)iflen(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=0max_retry=5#因需要验证码而重试的最大次数whilen<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)exceptExceptionase:print(f'未能签到{bar},由于{e}。')failed_bar.append(bar)continuedic=r.json()msg=dic['no']ifmsg==already_signed_code:already_signed+=1;r='已经签到过了!'elifmsg==need_verify_codeandretry_count<max_retry:n-=1;retry_count+=1;r=f'需要验证码,即将重试!({retry_count}/{max_retry})'elifmsg==need_verify_code:r='验证码错误,跳过!';retry_count=0elifmsg==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+=1n+=1l=len(bars)failed="n失败列表:"+'n'.join(failed_bar)iflen(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.
Step5.
Step6.
Step7. 测试一下函数运行情况。如若成功则应该能看到“测试成功”,输出与图示相似;失败则检查Cookie是否过期、填写错误以及网络状况。
Step8. 自动执行
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