百度贴吧签到助手 [修复只能签到20个的问题]
本帖最后由 nanqian 于 2022-8-25 16:45 编辑前几天在站内看到有个兄弟分享了自己用python写的贴吧签到,正好这段时间在学python,于是为了验收一下自己的学习成果在看了个思路后自己写了一份
用pyinstaller打包了一下,在同一目录下的cookie.txt里填好cookie就可以用了
下面的代码是把cookie填在文件里的
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import re
import requests
import os
import time
import platform
from progress.bar import IncrementalBar
my_cookie = ''
my_header = {'Cookie': my_cookie,
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'}
def clear():
# 返回系统平台/OS的名称,如Linux,Windows,Java,Darwin
system = platform.system()
if system == u'Windows':
os.system('cls')
else:
os.system('clear')
total = 0
success_num = 0
repeat = 0
fail_list = []
section = requests.session()
def signup(tb):
global total, success_num, repeat, fail_list
total += 1
time.sleep(0.1)
# print(f' \n ♪{tb}吧')
sign_data = {
'ie': 'utf-8',
'kw': tb,
'tbs': time.time(),
}
sign_url = 'https://tieba.baidu.com/sign/add'
req = section.post(sign_url, data=sign_data, headers=my_header)
if req.json()['error'] == '':
success_num += 1
elif req.json()['error'] == u'亲,你之前已经签过了':
repeat += 1
else:# 把签到失败的存储在列表里
fail_list.append(tb)
def autoSignup():
page = 1# 从第一页开始
print(u' \n如果您关注的贴吧较多将会分组签到,每组最多20个')
while True:
list_url = f'https://tieba.baidu.com/f/like/mylike?&pn={page}'
res = section.get(list_url, headers=my_header)
tb_list = re.findall(r'<a href=".*?" title=".*?">(.*?)</a>', res.text)
if len(tb_list) == 0:
break
print('-------------------------')
# 创建进度条
mylist = tb_list
bar = IncrementalBar('·', max=len(mylist))
for tb in tb_list:
bar.next()
signup(tb)
time.sleep(0.5)
bar.finish()
page += 1# 循环结束+1页
fail_num = total - success_num - repeat
print('-------------------------')
print(
f' 您本次尝试签到{total}个吧,其中:\n'
f' {success_num}个签到成功,{repeat}个已经签到过,{fail_num}个签到失败\n'
f' 签到失败的贴吧列表:{fail_list}')
print(u'\n\n 所有贴吧签到完成,感谢您的使用!')
def main():
if __name__ == '__main__':
clear()
for t in range(0, 5):
print(
u'\t\n -- 该文件仅用于学习交流,请合法使用并在下载后的24小时内删除! --\n')
time.sleep(0.3)
time.sleep(1.5)
clear()# 清除提示内容,下面正式开始
if my_cookie == '':
print(u' cookie为空')
input(u' 按回车键关闭程序…')
return
autoSignup()
input(u' 按回车键关闭程序…')
main()
---
### 2022.8.25
1.解决只能签到20个的问题
2.使用session来减少握手时间,提高效率
3.删除了get_tbs函数,直接使用time.time()生成tbs参数
4.改用进度条显示进度
感谢33楼@zhai0122的建议
应用版及源码下载链接:https://nanqian.lanzouv.com/b05oo670h 密码:i26x
1332149404 发表于 2022-8-22 22:39
怎么获取贴吧cookie呀
在贴吧首页登录账号后,F12打开浏览器的开发者工具,选择网络(Network),刷新页面,在出现的列表的最上面有一个index.html,点进去后在右边的请求头(Request Headers)一项就可以看到Cookie,右键复制就可以了
或者百度一下应该也是有图文教程的 谢谢老板的分享 正好想找一个自动签到贴吧的软件工具 a2579111 发表于 2022-8-25 18:45
大佬你好,
我运行提示缺少api-ms-win-core-path-|1-1-0.dll,
是不是要下载个什么东西补一下?
https://blog.csdn.net/gwz_6903/article/details/116304750你试试看行不行 丨miss丶星星 发表于 2022-8-21 19:58
最近python很火啊,支持一下
是啊挺多人学的,好上手又能轻松实现一些自动化 最近python很火啊,支持一下 不错,感谢分享 太感谢了,顺便学习楼主的思路 这个不错 我把这个挂到GitHub上做个任务每天自动执行可以嘛? 感谢大佬分享 cookie是BDUSS还是什么,粘进去不对