基于Drissionpage实现的b站评论爬取(无需逆向25/2/10可用)

devtools/2025/2/11 12:41:09/

       本文中的代码主要功能是从指定的 B 站视频链接中提取评论,并将其保存到一个文本文件中。用户可以指定需要爬取的页面次数以及保存的文件名。代码使用了 DrissionPage 库,这是一种基于 Selenium 和 Requests 的高层次网页抓取工具,支持异步请求和网络流监听。用户可以根据需要调整爬取的页面数量和保存的文件名,以满足特定的需求。

python">from DrissionPage import ChromiumPage  # pip install DrissionPage
import time
import jsonURL = input("请输入B站视频链接:")
num = int(input("请输入要爬取的页面次数:"))
name = input("请输入要保存的文件名:")
name = name + '.txt'page = ChromiumPage()
page.set.load_mode.none()# 监听特定的网络流
page.listen.start('https://api.bilibili.com/x/v2/reply/wbi/main?')# 访问B站页面
page.get(f'{URL}')
time.sleep(3)for _ in range(num + 1):page.scroll.to_bottom()print("正在爬取第{0}页评论".format(_ + 1))time.sleep(2)# 用于存储所有捕获的响应数据
responses = []try:# 循环监听直到达到所需数量或超时for _ in range(num):# 等待网络请求包到达packet = page.listen.wait(timeout=10)# 停止加载页面(这步可以根据需求调整)page.stop_loading()# 接收 HTTP 响应内容response_body = packet.response.body# 将响应内容存储到列表中responses.append(response_body)time.sleep(1)except Exception as e:print(f"解析出现错误: {e}")# 处理和打印捕获到的所有响应
total_comments = 0with open(name, 'a', encoding='utf-8') as file:for response in responses:try:if 'data' in response:datas = response['data']['replies']total_comments += len(datas)for data in datas:comments = data['content']['message']uname = data['member']['uname']sex = data['member']['sex']IP = data['reply_control']['location']# print(f"评论内容: {comments}\n用户名: {uname}\n性别: {sex}\nIP地址: {IP}\n")file.write(json.dumps(f"评论内容: {comments}, 用户名: {uname}, 性别: {sex}, IP地址: {IP}", ensure_ascii=False, indent=4))file.write('\n')except KeyError as e:print(f"处理响应时出现错误: {e}")page.close()# 最后打印总评论数量
print(f"总评论数量: {total_comments}")


http://www.ppmy.cn/devtools/157929.html

相关文章

解决 Excel 打开 UTF-8 编码 CSV 文件乱码的问题

前言:解决Excel打开UTF-8编码CSV文件乱码的BUG问题 在日常数据处理工作中,我们经常会使用CSV文件进行数据的导入和导出。然而,当CSV文件采用UTF-8编码时,有时候在使用Excel打开这些文件时会遇到乱码的问题,这可能会影…

LibreOffice - pptx 转 pdf

安装 LibreOffice 方式一:使用 brew(推荐) brew install libreoffice 使用 soffice 验证 %> soffice --version LibreOffice 24.8.3.2 48a6bac9e7e268aeb4c3483fcf825c94556d9f92%> which soffice /opt/homebrew/bin/soffic…

7. 基于DeepSeek和智谱清言实现RAG问答

课件链接:https://cloud.189.cn/t/VNvmyimY7Vna(访问码:e4cb)天翼云盘是中国电信推出的云存储服务,为用户提供跨平台的文件存储、备份、同步及分享服务,是国内领先的免费网盘,安全、可靠、稳定、…

TypeScript:5分钟上手创建一个简单的Web应用

一、练习TypeScript实例 1.1 在src目录里创建greeter.ts greeter.ts文件代码 // https://www.tslang.cn/docs/handbook/typescript-in-5-minutes.html // 格式化快捷键:https://blog.csdn.net/Dontla/article/details/130255699 function greeter(name: string) …

Jenkins 使用教程:从入门到精通

在软件开发的复杂流程中,持续集成与持续交付(CI/CD)是提升开发效率和保障软件质量的核心实践。Jenkins 作为一款备受欢迎的开源自动化服务器,在 CI/CD 流程中发挥着举足轻重的作用。本文将深入、详细地介绍 Jenkins 的使用方法&am…

day4事件处理核心机制

widget.h #include "widget.h" #include "ui_widget.h" #include<QFont> //字体类 #include<QFontDialog> //字体对话框 #include<QColorDialog> #include<QColor> #include<QMessageBox> #include<QFileDialog&g…

【Matlab优化算法-第14期】基于智能优化算法的VMD信号去噪项目实践

基于智能优化算法的VMD信号去噪项目实践 一、前言 在信号处理领域&#xff0c;噪声去除是一个关键问题&#xff0c;尤其是在处理含有高斯白噪声的复杂信号时。变分模态分解&#xff08;VMD&#xff09;作为一种新兴的信号分解方法&#xff0c;因其能够自适应地分解信号而受到…

Elasticsearch 安装与使用指南

Elasticsearch 安装与使用指南 Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎&#xff0c;能够解决不断涌现出的各种用例。它提供了快速搜索、相关度排序、强大的数据分析等功能&#xff0c;广泛应用于日志分析、全文检索、应用性能监控等领域。 一、环境准备…