Files
BiliBiliToolPro/qinglong/bak/bili_dev_task_get_cookie.py.bak
database-mysql e519cac94e
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
Close Stale Issues / close_stale_issues (push) Has been cancelled
repo-sync / repo-sync (push) Has been cancelled
auto-deploy-tencent-scf / pre-check (push) Has been cancelled
auto-deploy-tencent-scf / deploy serverless (push) Has been cancelled
pull file
2026-02-11 23:32:56 +08:00

88 lines
2.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'''
1 9 11 11 1 bili_dev_task_get_cookie.py
手动运行查看日志并使用手机B站app扫描日志中二维码注意只能修改第一个cookie
如果产生错误,重新运行并用手机扫描二维码
有可能识别不出来二维码,我测试了几次都能识别
默认环境变量存放位置为/ql/data/config/env.sh
可以自己通过docker命令进入容器查找这个文件位置。docker exec -it qinglong /bin/bash,进入青龙容器,然后查找一下这个文件位置
filename = '../config/env.sh'
'''
import qrcode
import requests
import json
import time
import os
filename = '/ql/data/config/env.sh'
url_get = 'http://passport.bilibili.com/x/passport-login/web/qrcode/generate'
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.42"
}
session = requests.session()
response = session.get(url_get, headers=headers)
json_data = json.loads(response.text)
qr_data = json_data['data']['url']
qr_code = json_data['data']['qrcode_key']
# print(qr_data)
# img = qrcode.make(qr_data)
# img.save('../upload/B.png')
# 生成二维码并且打印只有invert是True手机才能识别默认的打印识别不出来
qr = qrcode.QRCode()
qr.add_data(qr_data)
qr.print_ascii(invert=True)
url_get_2 = f'http://passport.bilibili.com/x/passport-login/web/qrcode/poll?qrcode_key={qr_code}&source=main_mini'
refresh_token = ''
# 尝试次数
try_time = 8
while True:
try_time -= 1
if not try_time:
print('一直没有扫码,退出登录!')
exit(1)
response = session.get(url_get_2, headers=headers)
json_data = json.loads(response.text)
response_data_2 = json_data['data']
if response_data_2['code'] == 0:
try_time += 5
refresh_token = response_data_2['refresh_token']
print(response_data_2, end='')
if response_data_2['message'] == '二维码已失效':
print(response_data_2['message'])
print('-' * 20)
break
print(response_data_2['message'])
print('-' * 20)
time.sleep(5)
session.get('https://api.bilibili.com/x/web-interface/nav')
cookies = requests.utils.dict_from_cookiejar(session.cookies)
lst = []
for item in cookies.items():
lst.append(f"{item[0]}={item[1]}")
cookie_str = ';'.join(lst)
print('=' * 20)
print(cookie_str)
print('=' * 20)
# 修改环境变量
with open(filename, 'r') as f:
lines = f.readlines()
flag = True
with open(filename, 'w') as f:
for l in lines:
if 'Ray_BiliBiliCookies__1' in l:
flag = False
l = f'export Ray_BiliBiliCookies__1="{cookie_str}"\n'
print(l)
f.write(l)
if flag:
flag = False
l = f'export Ray_BiliBiliCookies__1="{cookie_str}"\n'
print(l)
f.write(l)
os.popen(f'source {filename}')