【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论

这篇具有很好参考价值的文章主要介绍了【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


您好,我是 @马哥python说,一枚10年程序猿。

一、爬取目标

之前,我分享过一些B站的爬虫:

【Python爬虫案例】用Python爬取李子柒B站视频数据
【Python爬虫案例】用python爬哔哩哔哩搜索结果
【爬虫+情感判定+Top10高频词+词云图】"谷爱凌"热门弹幕python舆情分析

但我学习群中小伙伴频繁讨论B站评论的爬取,所以,再分享一个B站视频评论的爬虫。

二、展示爬取结果

首先,看下部分爬取数据:
【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论,python爬虫,爬虫,python,开发语言

爬取字段含:视频链接、评论页码、评论作者、评论时间、IP属地、点赞数、评论内容

三、爬虫代码

导入需要用到的库:

import requests  # 发送请求
import pandas as pd  # 保存csv文件
import os  # 判断文件是否存在
import time
from time import sleep  # 设置等待,防止反爬
import random  # 生成随机数

定义一个请求头:

# 请求头
headers = {
    'authority': 'api.bilibili.com',
    'accept': 'application/json, text/plain, */*',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    # 需定期更换cookie,否则location爬不到
    'cookie': "需换成自己的cookie值",
    'origin': 'https://www.bilibili.com',
    'referer': 'https://www.bilibili.com/video/BV1FG4y1Z7po/?spm_id_from=333.337.search-card.all.click&vd_source=69a50ad969074af9e79ad13b34b1a548',
    'sec-ch-ua': '"Chromium";v="106", "Microsoft Edge";v="106", "Not;A=Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-site',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47'
}

请求头中的cookie是个很关键的参数,如果不设置cookie,会导致数据残缺或无法爬到数据。

那么cookie如何获取呢?打开开发者模式,见下图:
【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论,python爬虫,爬虫,python,开发语言

由于评论时间是个十位数:
【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论,python爬虫,爬虫,python,开发语言

所以开发一个函数用于转换时间格式:

def trans_date(v_timestamp):
    """10位时间戳转换为时间字符串"""
    timeArray = time.localtime(v_timestamp)
    otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
    return otherStyleTime

向B站发送请求:

response = requests.get(url, headers=headers, )  # 发送请求

接收到返回数据了,怎么解析数据呢?看一下json数据结构:
【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论,python爬虫,爬虫,python,开发语言

0-19个评论,都存放在replies下面,replies又在data下面,所以,这样解析数据:

data_list = response.json()['data']['replies']  # 解析评论数据

这样,data_list里面就是存储的每条评论数据了。
接下来吗,就是解析出每条评论里的各个字段了。
我们以评论内容这个字段为例:

comment_list = []  # 评论内容空列表
# 循环爬取每一条评论数据
for a in data_list:
    # 评论内容
    comment = a['content']['message']
    comment_list.append(comment)

其他字段同理,不再赘述。

最后,把这些列表数据保存到DataFrame里面,再to_csv保存到csv文件,持久化存储完成:

# 把列表拼装为DataFrame数据
df = pd.DataFrame({
    '视频链接': 'https://www.bilibili.com/video/' + v_bid,
    '评论页码': (i + 1),
    '评论作者': user_list,
    '评论时间': time_list,
    'IP属地': location_list,
    '点赞数': like_list,
    '评论内容': comment_list,
})
# 把评论数据保存到csv文件
df.to_csv(outfile, mode='a+', encoding='utf_8_sig', index=False, header=header)

注意,加上encoding=‘utf_8_sig’,否则可能会产生乱码问题!

下面,是主函数循环爬取部分代码:(支持多个视频的循环爬取)

# 随便找了几个"世界杯"相关的视频ID
bid_list = ['BV1DP411g7jx', 'BV1M24y117K3', 'BV1nt4y1N7Kj']
# 评论最大爬取页(每页20条评论)
max_page = 30
# 循环爬取这几个视频的评论
for bid in bid_list:
    # 输出文件名
    outfile = 'b站评论_{}.csv'.format(now)
    # 转换aid
    aid = bv2av(bid=bid)
    # 爬取评论
    get_comment(v_aid=aid, v_bid=bid)

四、同步视频

演示视频:
【2023爬虫演示】用python抓取上千条「卡塔尔世界杯」B站评论!


五、附完整源码

附完整代码: 【B站评论爬虫】用python爬取上千条哔哩哔哩评论


我是马哥,全网累计粉丝上万,欢迎一起交流python技术。

各平台搜索“马哥python说”:知乎、哔哩哔哩、小红书、新浪微博。文章来源地址https://www.toymoban.com/news/detail-719022.html

到了这里,关于【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python如何运用爬虫爬取京东商品评论

    打开京东商品网址(添加链接描述) 查看商品评价 。我们点击评论翻页,发现网址未发生变化,说明该网页是动态网页。 我们在 浏览器右键点击“检查” ,,随后 点击“Network” ,刷新一下,在搜索框中 输入”评论“ ,最终找到 网址(url) 。我们点击Preview,发现了我们需要

    2024年02月07日
    浏览(45)
  • 【Python】爬虫练习-爬取豆瓣网电影评论用户的观影习惯数据

    目录 前言 一、配置环境 1.1、 安装Python 1.2、 安装Requests库和BeautifulSoup库 1.3.、安装Matplotlib 二、登录豆瓣网(重点) 2.1、获取代理 2.2、测试代理ip是否可用 2.3、设置大量请求头随机使用 2.4、登录豆瓣网 三、爬取某一部热门电影数据 3.1、爬取全部长、短评论 3.2、获取用户

    2024年02月09日
    浏览(43)
  • 用python语言爬虫爬取微博评论--上--初步爬虫(超详细版,大学生不骗大学生)

    目录 一、找到页面  二、学会使用检查元素 2.1 打开检查元素界面 2.2 找到所有评论所在的位置 2.2.1 搜索评论 2.2.2  找到data表 三、基础部分代码实现 ​​​​​​​ 全部已经更完(下面两个链接是中和下) https://blog.csdn.net/m0_68325382/article/details/137234661?spm=1001.2014.3001.5502 爬

    2024年04月10日
    浏览(52)
  • 【爬虫】爬取旅行评论和评分

    以马蜂窝“普达措国家公园”为例,其评论高达3000多条,但这3000多条并非是完全向用户展示的,向用户展示的只有5页,数了一下每页15条评论,也就是75条评论,有点太少了吧!  因此想了个办法尽可能多爬取一些评论,根据我对爬虫爬取数据法律法规的相关了解,爬取看得

    2024年02月13日
    浏览(32)
  • 基于Python的B站(哔哩哔哩)视频评论采集,可破解反爬手段,想爬几条爬几条

    它通过输入Bilibili视频的av号、BV号或链接,然后使用指定的cookie和请求头信息发送HTTP请求来获取视频的评论数据。然后,它将评论数据解析为CSV格式,并保存到指定的文件中。 具体实现过程如下: 导入所需的库:requests用于发送HTTP请求,os用于操作文件路径,time用于处理时

    2024年01月18日
    浏览(56)
  • 【2023知乎爬虫】知友怎么看待《罗刹海市》?爬了上千条知乎回答!

    目录 一、爬取目标 二、展示爬取结果 三、讲解代码 3.1 分析页面 3.2 开发爬虫 四、同步视频 五、获取完整源码 您好,我是@马哥python说,一枚10年程序猿。 之前我分享过一篇知乎评论的爬虫教程,但是学习群中的小伙伴强烈要求爬取知乎回答,所以本次分享知乎回答的爬虫

    2024年02月14日
    浏览(65)
  • 爬虫练习-爬取豆瓣网电影评论用户的观影习惯数据

    以豆瓣当下实时热门电影《热烈》作为分析对象 环境: Python3(Anaconda3) PyCharm Chrome浏览器 主要模块: BeautifulSoup requests pymysql 一.概括 目标:获得电影《热烈》的用户观影习惯数据 代码概括: 1.使用requests和bs4爬取电影《热烈》所有短评长评及其用户                           

    2024年02月14日
    浏览(43)
  • 【爬虫GUI】YouTube评论采集软件,突破反爬,可无限爬取!

    目录 一、背景介绍 1.1 软件说明 1.2 效果演示 二、科普知识 2.1 关于视频id 2.2 关于评论时间 三、爬虫代码 3.1 界面模块 3.2 爬虫模块 3.3 日志模块 四、获取源码及软件 你好,我是@马哥python说 ,一名10年程序猿。 最近我用python开发了一个GUI桌面软件,作用是爬取YouTube指定视频

    2024年02月11日
    浏览(40)
  • Python爬虫爬取知乎文章内容(解决最新js反爬2021.9 x-zse-96 2.0版本加密破解分析)...

    有个需求爬取知乎文章,正好记录下爬取过程以及出现问题并解决方法 我是在没有登录的情况下爬取文章的 本文仅供研究与学习使用 知乎现今的 x-zse 参数的加密方法已升级成了:x-zse-96 2.0版本。 来看这篇帖子的应该都知道,这个参数动态唯一,没有就拿不到api数据。 查阅

    2023年04月08日
    浏览(51)
  • 当我用Python爬取了京东商品所有评论后发现....

    不知道各位网购的时候,是否会去留意商品评价,有些小伙伴是很在意评价的,看到差评就不想买了,而有些小伙伴则是会对差评进行理性分析,而还有一类人不在乎这个。 当然这都是题外话,咱们今天主要的目的是使用Python来爬取某东商品的评价,并保存到CSV表格。 在进

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包