1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 百度贴吧自动签到脚本 python3

百度贴吧自动签到脚本 python3

时间:2019-09-10 00:57:16

相关推荐

百度贴吧自动签到脚本 python3

52上看到有人分享的,代码逻辑实在不敢恭维,做了一些逻辑功能方面的更改,添加了一些注释,代码直接贴下面了:

# -*- coding:utf-8 -*-import requests,datetime,re,os,sys,timefrom bs4 import BeautifulSoup'''函数match_bar_name用来获取1、当前页2、关注贴吧名字和链接,返回列表数据,格式[{'name':'abc','link':'www.asdfaf.asdfasdf'},'name':'abc','link':'www.asdfaf.asdfasdf'}],'''def match_bar_name(soup):list=[]for i in soup.find_all('a'):if i.has_attr('href') and not i.has_attr('class') and i.has_attr('title'):if i.string != 'lua':list.append({'name':i.string,'link':'/'+i.get('href')+'&fr=home'})return list'''函数get_bar_link用来获取1、所有页2、关注贴吧3、名字和链接'''def get_bar_link():#遍历所有页,直到最后一页url=r'/f/like/mylike?pn=%d'pg=1tieba_list = []while 1:res=s.get(url%pg,headers=headers)soup=BeautifulSoup(res.text,'html.parser')tieba_list.extend(match_bar_name(soup))if '下一页' in str(soup):pg+=1else:return tieba_list'''name: 贴吧名字link:贴吧链接'''def check(name,link):#获取每个关注贴吧 提交数据tbs,然后签到,并返回签到结果try:res=s.post(link)tbs=pile('\'tbs\': "(.*?)"')find_tbs=re.findall(tbs,res.text)if not find_tbs: #没有查找到tbs,跳过这个吧的签到return -2data={'ie':'utf-8','kw':name,'tbs':find_tbs[0],}url='/sign/add'res=s.post(url,data=data,headers=headers)######## 签到 post# print(datetime.datetime.now(),' ',name,' ',res.json())return int(res.json()['no']) #########返回提交结果except:return -1def SignIn(data):try:res=check(data['name'], data['link'])if res==0:print( data['name'] +'吧签到成功\n')return Trueelif res==1101:print( data['name'] +'吧已经签过\n')return Trueelif res==1102:print( data['name'] + '吧,签到太快,重新签到本吧\n')time.sleep(10)return Falseelse:print(res)print('未知返回值,重新签到'+ data['name']+'吧')return Falseexcept :print('未知报错 重新签到'+ data['name']+'吧')return Falseif __name__ == "__main__":s=requests.session()cookie=''#自行填充百度贴吧的cookies,浏览器-F12-网络-F5-request-cookiesheaders={'Cookie':cookie,'Upgrade-Insecure-Requests':'1','User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',}for i in get_bar_link():#根据签到的返回值处理结果,利用count做最多三次异常重复签到flag = Falsecount = 0while flag == False:flag = SignIn(i)time.sleep(2) #控制签到速度count = count + 1if count >= 3:print(i['name']+'吧异常,无法签到,已经跳过')break

其实也额可以用pyqt开发个图形化界面的,比较懒,不弄了

直接丢服务器弄个定时任务还是比较舒服的,hhhh

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。