Last active
January 16, 2019 01:49
-
-
Save MOOOWOOO/5373c2bc70868f3e5e23e12930bc0935 to your computer and use it in GitHub Desktop.
auto sign on baidu tieba
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # -*- coding:utf-8 -*- | |
| import requests | |
| import re | |
| __author__ = 'Jux.Liu' | |
| # 修改自己的cooki | |
| cookie = '' | |
| # 构建请求头数据 | |
| headers = { | |
| 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', | |
| 'Accept-Encoding': 'gzip, deflate, sdch', | |
| 'Accept-Language': 'zh-CN,zh;q=0.8,en;q=0.6', | |
| 'Cache-Control': 'max-age=0', | |
| 'Connection': 'keep-alive', | |
| 'Cookie': cookie, | |
| 'DNT': '1', | |
| 'Host': 'tieba.baidu.com', | |
| 'Upgrade-Insecure-Requests': '1', | |
| 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36' | |
| } | |
| # 获取关注贴吧列表 | |
| def find_kw(headers): | |
| page_count = 1 | |
| kw_list = [] | |
| while 1: | |
| like_url = 'http://tieba.baidu.com/f/like/mylike?&pn={}'.format(page_count) | |
| like_html = requests.get(url=like_url, headers=headers).text | |
| re_kw = re.compile(r'<a href="/f\?kw=(.+?)" title="(.+?)"') | |
| temp_kw = re_kw.findall(like_html) | |
| if not temp_kw: | |
| break | |
| if not kw_list: | |
| kw_list = temp_kw | |
| else: | |
| kw_list += temp_kw | |
| page_count += 1 | |
| print('我喜欢的{}个贴吧:'.format(len(kw_list))) | |
| if kw_list: | |
| for i in kw_list: | |
| kw = i[0] | |
| title = i[1] | |
| sign(title, kw, headers) | |
| # 签到 | |
| def sign(title, kw, headers): | |
| sign_url = 'http://tieba.baidu.com/mo/m?kw={}'.format(kw) | |
| sign_html = requests.get(url=sign_url, headers=headers).text | |
| re_fid = re.compile(r'<input type="hidden" name="fid" value="(.+?)"\/>') | |
| # print 're_fid:\t', re_fid | |
| fid_l = re.findall(re_fid, sign_html) | |
| if len(fid_l) < 1: | |
| print('{}\t\t错误'.format(title)) | |
| else: | |
| fid = fid_l[0] | |
| # print 'fid:\t', fid | |
| re_tbs = re.compile(r'<input type="hidden" name="tbs" value="(.+?)"\/>') | |
| # print 're_tbs:\t', re_tbs | |
| tbs = re.findall(re_tbs, sign_html)[0] | |
| # print 'tbs:\t', tbs | |
| re_sign = re.compile(r'</td><td style="text-align:right;"><span >已签到</span>') | |
| # print 're_sign:\t', re_sign | |
| sign = re.findall(re_sign, sign_html) | |
| # print 'sign:\t', sign | |
| data = { | |
| 'tbs': tbs, | |
| 'fid': fid, | |
| 'kw': kw | |
| } | |
| if sign: | |
| print('{}\t\t已签'.format(title)) | |
| else: | |
| print('{}\t\t签到成功'.format(title)) | |
| sign_url = 'http://tieba.baidu.com/mo/q---C367D41E4214449AC861EDF6CE73CD4E%3AFG%3D1--1-3-0--2--wapp_1443524105422_889/sign?tbs={}&fid={}+&kw={}'.format( | |
| tbs, fid, kw) | |
| sign_html = requests.get(url=sign_url, headers=headers, data=data) | |
| if __name__ == '__main__': | |
| find_kw(headers) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment