add:comments
This commit is contained in:
parent
a040da8242
commit
af9887a0a6
51
main.py
51
main.py
@ -206,24 +206,24 @@ class BiliWebCrawler:
|
|||||||
print(f"解析UP主数据失败: {str(e)}")
|
print(f"解析UP主数据失败: {str(e)}")
|
||||||
send_notification(f"解析UP主数据失败: {str(e)}")
|
send_notification(f"解析UP主数据失败: {str(e)}")
|
||||||
return None
|
return None
|
||||||
try:
|
# try:
|
||||||
# 获取投稿列表
|
# # 获取投稿列表
|
||||||
archive_url = f'https://api.bilibili.com/x/space/arc/search?mid={mid}&ps=30'
|
# archive_url = f'https://api.bilibili.com/x/space/arc/search?mid={mid}&ps=30'
|
||||||
sleep(5)
|
# sleep(1)
|
||||||
archive_resp = self._safe_request(archive_url)
|
# archive_resp = self._safe_request(archive_url)
|
||||||
if archive_resp and archive_resp.status_code == 200:
|
# if archive_resp and archive_resp.status_code == 200:
|
||||||
archive_data = archive_resp.json()
|
# archive_data = archive_resp.json()
|
||||||
# print(archive_data)
|
# # print(archive_data)
|
||||||
videos = archive_data.get('data', {}).get('list', {}).get('vlist', [])
|
# videos = archive_data.get('data', {}).get('list', {}).get('vlist', [])
|
||||||
|
#
|
||||||
# 计算30天前的时间戳
|
# # 计算30天前的时间戳
|
||||||
month_ago = time.time() - 30 * 86400
|
# month_ago = time.time() - 30 * 86400
|
||||||
# 统计符合时间条件的视频
|
# # 统计符合时间条件的视频
|
||||||
recent_count = sum(1 for v in videos if v.get('created') > month_ago)
|
# recent_count = sum(1 for v in videos if v.get('created') > month_ago)
|
||||||
up_info['近一个月投稿数'] = recent_count
|
# up_info['近一个月投稿数'] = recent_count
|
||||||
except Exception as e:
|
# except Exception as e:
|
||||||
print(f"获取投稿数据失败: {str(e)}")
|
# print(f"获取投稿数据失败: {str(e)}")
|
||||||
send_notification(f"获取投稿数据失败: {str(e)}")
|
# send_notification(f"获取投稿数据失败: {str(e)}")
|
||||||
|
|
||||||
return up_info
|
return up_info
|
||||||
|
|
||||||
@ -300,7 +300,7 @@ class BiliWebCrawler:
|
|||||||
print(f"请求出错: {e}")
|
print(f"请求出错: {e}")
|
||||||
break
|
break
|
||||||
# 适当调整请求间隔
|
# 适当调整请求间隔
|
||||||
sleep(5)
|
sleep(1)
|
||||||
return comments
|
return comments
|
||||||
|
|
||||||
# 移除 fetch_comment_replies 方法(原方法不再需要)
|
# 移除 fetch_comment_replies 方法(原方法不再需要)
|
||||||
@ -343,7 +343,7 @@ class BiliWebCrawler:
|
|||||||
video_info_filename = os.path.join(video_dir, f'{self.bvid}_{play_count}_info.csv')
|
video_info_filename = os.path.join(video_dir, f'{self.bvid}_{play_count}_info.csv')
|
||||||
self.save_to_csv([video_info], video_info_filename)
|
self.save_to_csv([video_info], video_info_filename)
|
||||||
|
|
||||||
sleep(5)
|
sleep(1)
|
||||||
|
|
||||||
# 新增弹幕抓取
|
# 新增弹幕抓取
|
||||||
print("正在抓取弹幕数据...")
|
print("正在抓取弹幕数据...")
|
||||||
@ -351,7 +351,7 @@ class BiliWebCrawler:
|
|||||||
danmaku_filename = os.path.join(video_dir, f'{self.bvid}_{len(danmaku)}_danmaku.csv')
|
danmaku_filename = os.path.join(video_dir, f'{self.bvid}_{len(danmaku)}_danmaku.csv')
|
||||||
self.save_to_csv(danmaku, danmaku_filename)
|
self.save_to_csv(danmaku, danmaku_filename)
|
||||||
|
|
||||||
sleep(5)
|
sleep(1)
|
||||||
|
|
||||||
# 新增评论抓取
|
# 新增评论抓取
|
||||||
print("正在抓取评论数据...")
|
print("正在抓取评论数据...")
|
||||||
@ -359,7 +359,7 @@ class BiliWebCrawler:
|
|||||||
comments_filename = os.path.join(video_dir, f'{self.bvid}_{len(comments)}_comments.csv')
|
comments_filename = os.path.join(video_dir, f'{self.bvid}_{len(comments)}_comments.csv')
|
||||||
self.save_to_csv(comments, comments_filename)
|
self.save_to_csv(comments, comments_filename)
|
||||||
|
|
||||||
sleep(5)
|
sleep(1)
|
||||||
|
|
||||||
# 新增UP主信息记录
|
# 新增UP主信息记录
|
||||||
print("正在获取UP主信息...")
|
print("正在获取UP主信息...")
|
||||||
@ -382,8 +382,13 @@ if __name__ == "__main__":
|
|||||||
send_notification("未找到有效的BV号,程序退出")
|
send_notification("未找到有效的BV号,程序退出")
|
||||||
exit()
|
exit()
|
||||||
send_info_log(f"开始批量处理 {len(targets)} 个视频")
|
send_info_log(f"开始批量处理 {len(targets)} 个视频")
|
||||||
|
i=0
|
||||||
for bvid in targets:
|
for bvid in targets:
|
||||||
print(f"\n{'=' * 30} 开始处理 {bvid} {'=' * 30}")
|
print(f"\n{'=' * 30} 开始处理 {bvid} {'=' * 30}")
|
||||||
crawler = BiliWebCrawler(f"https://www.bilibili.com/video/{bvid}",cookie)
|
crawler = BiliWebCrawler(f"https://www.bilibili.com/video/{bvid}",cookie)
|
||||||
crawler.run()
|
crawler.run()
|
||||||
sleep(5)
|
i=i+1
|
||||||
|
if i%20==0:
|
||||||
|
send_info_log(f"已完成 {i} 个视频,进度:{i/len(targets)*100:.2f}%")
|
||||||
|
sleep(1)
|
||||||
|
send_info_log(f"批量处理完成!")
|
Loading…
x
Reference in New Issue
Block a user