biliarchiver/biliup_get_bvids_from_top100_rank_by_rid.py

46 lines
1.3 KiB
Python
Raw Normal View History

2023-06-02 11:40:11 -07:00
import os
import time
import requests
import json
import argparse
def arg_parse():
parser = argparse.ArgumentParser()
parser.add_argument('--rid', type=int, default=0, help='目标排行 rid0 为全站排行榜 [default: 0]')
args = parser.parse_args()
return args
def main():
args = arg_parse()
rid: int = args.rid
bilibili_ranking_api = "https://api.bilibili.com/x/web-interface/ranking/v2"
bilibili_ranking_params = {
"rid": rid,
"type": "all"
}
r = requests.get(bilibili_ranking_api, params=bilibili_ranking_params)
r.raise_for_status()
ranking_json = json.loads(r.text)
assert ranking_json['code'] == 0 # 0 为成功HTTP 200 不能信)
ranking = ranking_json['data']['list']
bvids = []
for video_info in ranking:
# print(video_info['title'], video_info['bvid'], video_info['pic'])
bvid = video_info['bvid']
bvids.append(bvid)
import datetime
today = datetime.date.today()
os.makedirs('bvids', exist_ok=True)
with open(f'bvids/rank/by-rid/rid-{rid}-{int(time.time())}.txt', 'w', encoding='utf-8') as f:
for bvid in bvids:
f.write(f'{bvid}' + '\n')
2023-06-02 11:41:56 -07:00
print(f'已保存 {len(bvids)} 个 bvid 到 bvids/bvids-{today.isoformat()}.txt')
if __name__ == '__main__':
main()