B站评论爬虫--爬取游戏主页评论

2023-05-16

由于公司需要监控到不同时间段用户观点的变化,需要爬取各个平台下我们用户的评论,因此,B站评论爬取的需求诞生啦!!~~看了网上的其他教程,都没有我这个类型的(大多数是普通的up上传的视频),我这个呢,是官方游戏主页(也许可以这么叫吧,我也不知道,反正就是从地址上看就不大一样,是http://www.biligame.com开头的)
那么这种特别一点的评论要怎么爬取呢?接下来我们一起来解决吧~

查找评论

在进行爬虫之前,我们先进入游戏中,看一看评论长什么样。
输入你关注的游戏的网址,点击评论
找到你想要的评论
选择一条评论,按下F12,选择network,可以看到评论返回的内容
这里可能会踩坑,就是你直接F12选择network 出来,像其他教程一样去找web?开头的返回,是没有response的、你需要首先选择一条评论,F12,在element里面找到它,然后再点击network,然后选择page?开头的返回
评论的网页返回内容
观察这个评论的返回地址
在这里插入图片描述
可以看到,page_num=1,表示当前是第一页。我们修改page_num就可以对评论进行翻页

开始爬虫

既然评论的地址已经知道了,那么就让python小朋友来帮助我们爬取数据吧
在开始之前需要说明一点:
为了防止被反爬,每爬取一页都随机停顿1~3秒。如果以后b站的反爬更严格的话,可以把这个时间加长一点点

下面上代码

import requests 
import json
import random
import os
import pandas as pd
import time
import sys
def B_station_scrapy():
#您要爬取的网页,如果也是游戏主页的内容,直接改game_base_id即可
    url_base='http://line1-h5-pc-api.biligame.com/game/comment/page?game_base_id=101601&rank_type=3&page_num=1&page_siz'
    page_length=json.loads(requests.get(url_base).text)['data']['page_count']#得到评论总页数
    df_Bilibili_content=pd.DataFrame(columns={'user_name','publish_time','content','grade','user_level','up_count','reply_count'})
    for page_num in range(1,page_length+1):
        r=requests.get('http://line1-h5-pc-api.biligame.com/game/comment/page?game_base_id=101601&rank_type=3&page_num={}&page_siz'.format(pg_num))
        datas=json.loads(r.text)['data']['list']
        sys.stdout.write("\r 正在爬取页数:{0}".format(page_num))#动态输出当前爬取到第几页
        sys.stdout.flush()
        for data in datas:#写入数据
            username=data['user_name']
            publish_time=data['publish_time']
            content=data['content']
            grade=data['grade']
            user_level=data['user_level']
            up_count=data['up_count']
            reply_count=data['reply_count']
            df_Bilibili_content=df_Bilibili_content.append([{'user_name':username,'publish_time':publish_time,\
                                                            'content':content,'grade':grade,'user_level':user_level,\
                                                            'up_count':up_count,'reply_count':reply_count}])
        sleeps=random.uniform(1,3)
        time.sleep(sleeps)
    df_Bilibili_content.to_excel('B站评论爬取.xlsx')
    return df_Bilibili_content

这个爬虫中,我主要爬取了用户名称,发表时间,评论内容,用户等级,点赞,回复数等。如果你需要其他的内容,可以输出返回的json串,自行查看后选择。

good luck~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

B站评论爬虫--爬取游戏主页评论 的相关文章

  • 记录Ubuntu 18.04 (.run)方式安装 Nvidia driver

    环境 Ubuntu 18 04 CUDA Version 11 1 从官网下载对应的 驱动版本 eg span class token punctuation span NVIDIA span class token operator sp
  • Win10自动更新怎么永久关闭?服务、注册表、组策略、计划任务中全方位设置,永久解决!

    Win10自动更新就像打不死的小强 xff0c 不管怎么关闭 xff0c 之后还是会自动更新 xff0c 让不少小伙伴颇为不爽 今天通过4步 xff0c 在服务 注册表 组策略 计划任务中全方位设置 xff0c 彻底关闭Win10自动更新
  • vue3.0 router路由跳转传参(router.push)

    vue3 0取消了2 0部分api xff0c 所以路由跳转传值方式有所不同 这里主要讲编程式导航 xff0c 也就是router push location onComplete onAbort vue3 0新增API xff1a use
  • Linux下安装Xrdp,epel提示无软件包

    Xrdp 是 Microsoft 远程桌面协议 RDP 的开源实现 xff0c 允许您以图形方式控制远程系统 使用 RDP xff0c 您可以登录到远程计算机并创建一个真实的桌面会话 xff0c 就像您已登录到本地计算机一样 CentOS
  • 二进制、八进制、十进制及十六进制间的转换最简单的方法

    二进制 八进制 十进制及十六进制的转换 1 四种常用进制概况 在讲解这四种常用进制间转换之前 xff0c 需要先清楚每种进制数都包含哪些数字 xff1a 在上面的图中很轻易的可以看出这四种进制数中数字元素的区别 xff0c 并且除了我们最常
  • 使用TensorFlow Lite 部署自定义对象检测模型

    使用TensorFlow Lite 部署自定义对象检测模型 1 2022 03 05 文章目录 使用TensorFlow Lite 部署自定义对象检测模型 1 一 訓練自定義模型 4 1 收集數據2 訓練模型 二 集成TFLite模型的步驟
  • 使用docker安裝GPU版pytorch

    1 在docker pytorch 網址找到自己需要的環境 網址 https hub docker com r pytorch pytorch tags 点击复制 devel 版 连接 此处以 docker pull pytorch pyt
  • docker ssh连接

    docker ssh连接 1 进入docker span class token function passwd span span class token comment add root passward 记住自己设置的密码 xff0c
  • Docker容器显示图形到宿主机屏幕

    Docker容器显示图形到宿主机屏幕 在 docker 内 span class token function apt span span class token function install span xorg span class
  • MeshLab——计算点云法向量求三角网格

    MeshLab 原始 1 点云分割 点击1后选中要删除区域 xff0c 点击2删除即可得到如下 xff1a 2 画三角网格 求法向量 Filters gt Normal Curvatures and Orientation gt Compu
  • Jetson nano 卡刷教程

    Jetson nano 卡刷教程 所需用的的软件资源操作步骤 所需用的的软件资源 1 镜像 jetson nano jp451 sd card image zip 可自己在官网下载 https developer nvidia com em
  • dockers移盘&挂载

    docker 目录移动到其他磁盘的操作 systemctl stop docker 停止dockersystemctl status docker 查看docker服务状态mv var lib docker media li 1d10567
  • window docker 教程

    window docker 教程 1 docker windows 安装2 Docker Windows 修改默认镜像文件位置2 1 更改Docker Desktop设定2 2 创建文件链接2 3重新启动docker即可 1 docker
  • element-ui upload 上传组件中on-success 声明方法不生效问题

    最近在学习vue 2 xff0c 实现element ui 框架中upload 上传文件组件碰到的一些坑 xff1a 1 上传文件成功后on success 声明的方法不执行 lt el upload class 61 34 upload
  • python导出环境依赖(requirements.txt)

    pip list format span class token operator 61 span freeze span class token operator gt span requirement txt 即可在同级目录得到一个re
  • 000-搭建Gitea-自己的git服务器

    000 搭建Gitea 自己的git服务器 1 什么是gitea 官网的介绍是 xff1a Gitea的首要目标是创建一个极易安装 xff0c 运行非常快速 xff0c 安装和使用体验良好的自建 Git 服务 我们采用Go作为后端语言 xf
  • mac版eclipse安装lombok

    步骤 xff1a 1 看图 2 右击图标 3 4 点击eclipse 进入文件夹 5 复制lombok jar到这里 官网 xff1a https projectlombok org 在这里下载一个 6 修改eclipse ini 加上两行
  • Oracle恢复数据到某一节点

    alter table 表名 enable row movement 开启表行移动 flashback table 表名 to timestamp to timestamp 39 20210824 15 55 00 39 39 yyyymm
  • Oracle创建序列

    create sequence SEQ SHARE ID minvalue 1 增长最小值 maxvalue 9999999999 增长最大值 也可以设置NOMAXvalue 不设置最大值 start with 1 从1开始计数 incre
  • idea好用的插件分享(一)---any-rule(正则表达式插件)

    any rule一个常用正则表达式大全 在idea的插件市场中搜索any rule插件 xff0c 安装好后重启idea 在编辑器页面右击 xff0c 可以选中any rule打开搜索框 xff0c Mac系统也可以使用option 43

随机推荐