{"title":"Python爬取B站视频弹幕数据:实时弹幕和历史弹幕","description":"本文提供Python程序,演示如何爬取B站视频的实时弹幕和所有历史弹幕数据。详细解释代码,并提供示例,帮助您轻松获取B站弹幕数据。","keywords":"B站, 弹幕, 爬虫, Python, 实时弹幕, 历史弹幕, bilibili, danmu","content":"爬取部分弹幕数据的程序:\n\npython\nimport requests\nfrom bs4 import BeautifulSoup\n\ndef get_danmu(video_id):\n url = f"https://api.bilibili.com/x/v1/dm/list.so?oid={video_id}"\n response = requests.get(url)\n soup = BeautifulSoup(response.content, 'lxml')\n danmu_list = []\n for danmu in soup.find_all("d"):\n danmu_list.append(danmu.text)\n return danmu_list\n\nvideo_id = "视频的ID" # 替换成你要爬取的视频的ID\ndanmu_list = get_danmu(video_id)\nfor danmu in danmu_list:\n print(danmu)\n\n\n爬取所有历史弹幕数据的程序:\n\npython\nimport requests\nimport time\nimport json\n\ndef get_danmu(video_id):\n url = f"https://api.bilibili.com/x/v1/dm/list.so?oid={video_id}"\n response = requests.get(url)\n response.encoding = 'utf-8'\n danmus = response.text\n return danmus\n\ndef get_all_danmu(video_id):\n url = f"https://api.bilibili.com/x/player/pagelist?bvid={video_id}&jsonp=jsonp"\n response = requests.get(url)\n data = response.json()\n cid = data['data'][0]['cid']\n url = f"https://api.bilibili.com/x/v1/dm/list.so?oid={cid}"\n response = requests.get(url)\n response.encoding = 'utf-8'\n danmus = response.text\n\n page_num = data['data'][0]['pages']\n for i in range(2, page_num+1):\n time.sleep(0.5) # 为了避免请求过于频繁,设置延时\n url = f"https://api.bilibili.com/x/v1/dm/list.so?oid={cid}&p={i}"\n response = requests.get(url)\n response.encoding = 'utf-8'\n danmus += response.text\n\n return danmus\n\nvideo_id = "视频的ID" # 替换成你要爬取的视频的ID\ndanmu_list = get_all_danmu(video_id)\nwith open('danmu.txt', 'w', encoding='utf-8') as f:\n f.write(danmu_list)\n\n\n这段程序将所有历史弹幕数据保存在名为danmu.txt的文件中。"}

Python爬取B站视频弹幕数据:实时弹幕和历史弹幕

原文地址: https://www.cveoy.top/t/topic/qfcz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录