From cd48dee45cc20584e61cbac667ba99b3b60ac2da Mon Sep 17 00:00:00 2001 From: Sheyiyuan <2125107118@qq.com> Date: Mon, 24 Mar 2025 08:25:37 +0800 Subject: [PATCH] add:comments --- main.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index 78005f3..e17b90f 100644 --- a/main.py +++ b/main.py @@ -132,6 +132,31 @@ class BiliWebCrawler: tag_json = tag_resp.json() tag_data = [tag['tag_name'] for tag in tag_json.get('data', [])] + subtitle_data = [] + try: + subtitle_raw = video_data.get('subtitle', {}).get('list', []) + except Exception as e: + subtitle_raw = [] + for subtitle in subtitle_raw: + subtitle_data.append({ + '语言': subtitle.get('lan_doc', ''), + '字幕数量': subtitle.get('subtitles', []), + '字幕URL': subtitle.get('subtitle_url', ''), + }) + + honor_data = [] + honors = video_data.get('honor', []) + if isinstance(honors, list): # 确保是列表类型 + for honor in honors: + if isinstance(honor, dict): # 检查是否为字典类型 + honor_data.append({ + 'type': honor.get('type', 0), + 'desc': honor.get('desc', '') + }) + # 如果honors是字符串则直接记录 + elif isinstance(honors, str): + honor_data.append({'desc': honors}) + info = { 'BV号': self.bvid, 'title': video_data.get('title', ''), @@ -145,6 +170,7 @@ class BiliWebCrawler: '分享量': video_data.get('stat', {}).get('share', 0), '评论量': video_data.get('stat', {}).get('reply', 0), '发布时间的timestamp': video_data.get('pubdate', 0), + '视频荣誉': honor_data, '发布时间': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(video_data.get('pubdate', 0))), '分区': video_data.get('tname', ''), '标签': tag_data, @@ -152,9 +178,11 @@ class BiliWebCrawler: '视频最高分辨率': resolution_str, '视频类型': ["","自制", "转载"][video_data.get('copyright', 0)], '视频分p数': len(video_data.get('pages', [])), + '视频字幕': subtitle_data, '视频总时长': self.get_video_length(video_data.get('pages', [])), '视频封面URL': video_data.get('pic', ''), '简介': video_data.get('desc', '').replace('\n', '\\n'), + } return info @@ -374,7 +402,7 @@ class BiliWebCrawler: if __name__ == "__main__": - cookie = "buvid3=669D9192-9030-AE04-8149-45A24D82CBB985872infoc; b_nut=1728112285; _uuid=BDD29A64-331010-1578-7AB2-6985DCD1EC10586028infoc; enable_web_push=DISABLE; buvid4=02E86127-F707-C9D6-1E0E-62127CDB94EA86683-024100507-5HwKLZoKiRRAzdUiyP1DtUb99jVdMKHnip8nMCxMvnyDueJx41kzeR6uEnG0C2HY; DedeUserID=399209972; DedeUserID__ckMd5=9ad9de58e979dbdf; header_theme_version=CLOSE; rpdid=0zbfAHZlOT|utNc6ahG|2XT|3w1SWYYy; buvid_fp_plain=undefined; hit-dyn-v2=1; is-2022-channel=1; LIVE_BUVID=AUTO7717291772934669; PVID=2; enable_feed_channel=ENABLE; CURRENT_QUALITY=80; fingerprint=262ed395815a48ea928a2b3cf305da95; buvid_fp=262ed395815a48ea928a2b3cf305da95; bsource=search_bing; CURRENT_FNVAL=4048; bp_t_offset_399209972=1046334052841291776; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDI3ODE1NzgsImlhdCI6MTc0MjUyMjMxOCwicGx0IjotMX0.yseN1sbG5qDIlo5L0mUKqRr2tCL0OqPBnSnnHUYCWtE; bili_ticket_expires=1742781518; home_feed_column=5; browser_resolution=1702-986; b_lsid=EAE310D10E_195C32A76ED; SESSDATA=d0449397%2C1758291057%2C666e5%2A32CjDmj_WpEXUbv2oTIls3PPvM1wODDzR-gnPMRP5gwm09UIZ7YGdhTsJ7ssNg5Tb19qESVmlUMktwdlhkTnNlM0dTU05kZlBOTERNM3JqeTVSNGFaRzdwZmtNWUpjTHhPWmdxTzJiWmdDSVZxNkpEb0VGNHJFTEdaTlJtcVhBUlMzbEZJTzdCeXNnIIEC; bili_jct=e7f4029b2be38fe915678f49aa5b36f7; sid=nxbw3hdh" + cookie = "buvid3=669D9192-9030-AE04-8149-45A24D82CBB985872infoc; b_nut=1728112285; _uuid=BDD29A64-331010-1578-7AB2-6985DCD1EC10586028infoc; enable_web_push=DISABLE; buvid4=02E86127-F707-C9D6-1E0E-62127CDB94EA86683-024100507-5HwKLZoKiRRAzdUiyP1DtUb99jVdMKHnip8nMCxMvnyDueJx41kzeR6uEnG0C2HY; DedeUserID=399209972; DedeUserID__ckMd5=9ad9de58e979dbdf; header_theme_version=CLOSE; rpdid=0zbfAHZlOT|utNc6ahG|2XT|3w1SWYYy; buvid_fp_plain=undefined; hit-dyn-v2=1; is-2022-channel=1; LIVE_BUVID=AUTO7717291772934669; PVID=2; enable_feed_channel=ENABLE; CURRENT_QUALITY=80; fingerprint=262ed395815a48ea928a2b3cf305da95; buvid_fp=262ed395815a48ea928a2b3cf305da95; bsource=search_bing; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDI3ODE1NzgsImlhdCI6MTc0MjUyMjMxOCwicGx0IjotMX0.yseN1sbG5qDIlo5L0mUKqRr2tCL0OqPBnSnnHUYCWtE; bili_ticket_expires=1742781518; home_feed_column=5; browser_resolution=1702-986; SESSDATA=d0449397%2C1758291057%2C666e5%2A32CjDmj_WpEXUbv2oTIls3PPvM1wODDzR-gnPMRP5gwm09UIZ7YGdhTsJ7ssNg5Tb19qESVmlUMktwdlhkTnNlM0dTU05kZlBOTERNM3JqeTVSNGFaRzdwZmtNWUpjTHhPWmdxTzJiWmdDSVZxNkpEb0VGNHJFTEdaTlJtcVhBUlMzbEZJTzdCeXNnIIEC; bili_jct=e7f4029b2be38fe915678f49aa5b36f7; sid=6samqc5x; CURRENT_FNVAL=4048; b_lsid=C59CC24E_195C55AE7C6; bp_t_offset_399209972=1047699216786259968" # 批量处理targets.txt中的BV号 targets = load_targets() if not targets: