from
requests
import
Session
from
time
import
time
start_time
=
time()
log_path
=
f
"E://data/sign_log_{int(start_time)}.txt"
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'
:
'填入你的百度cookie(百度一下:如何获取百度cookie)'
,
'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
=
[]
logs
=
[]
n
=
0
while
n <
len
(bars):
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: n
-
=
1
; r
=
'需要验证码,即将重试!'
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
logs.append(dic)
n
+
=
1
end_time
=
time()
t
=
end_time
-
start_time
l
=
len
(bars)
failed
=
"\n失败列表:"
+
'\n'
.join(failed_bar)
if
len
(failed_bar)
else
''
print
(f
)
with
open
(log_path,
'w'
) as f:
for
log
in
logs:
f.write(
str
(log)
+
'\n'
)