python 爬虫b站评论,并且利用pyecharts绘制评论词云图

8 篇文章 0 订阅
订阅专栏
5 篇文章 2 订阅
订阅专栏

目录

第一步:分析网页

第二步:了解json数据

第三步:请求和数据清洗代码

第四步:分析子评论

第五步:子评论数据获取

 第六步:制作词云图


先来看看结果

第一步:分析网页

不管是什么样的爬虫项目,第一步要做的就是分析网页结构,以及数据来源,和数据结构。只有当你了解后,你才能知道你的代码具体该怎么去写。

这里我就部多说了,以前的文章里面有讲过: python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(一)_源源佩奇的博客-CSDN博客

我就直接说了,这是一个动态加载的数据,并且数据结构是json格式

第二步:了解json数据

找到你想要爬取视频评论的链接

嗯....嗯

就用鬼灭的吧

 这些红色框框里的数据就是我们想要的

按 F12 键,打开开发工具,然后刷新一下页面

 你就会得到这些数据包,在这些数据包里面就有需要我们的数据,我们只需要

复制一条评论的内容

 这样操作就成功找到我们想要的评论数据了。

点击标头,把url 复制下来

 在浏览器重新打开这个url

 出现了这个页面,是因为在这段url里面,有些参数是不需要的,所以没有请求到真正的数据。

一个一个参数删掉进行测试

删掉这个参数:callback=jQuery172014925829441866467_1667131832049& 

 把这个删掉之后再进行请求,就能得到我们想要的数据了

 这么看着很乱,结构一点也看不清,复制内容,创建一个json文件,用pycharm打开

打开后,按ctrl + ail + l,格式化文档

结果如下:

 我们所需要的数据就是再 data 下的 replies 里面,我们需要:

        

        rpid(评论id),

        rcount(页数),

        content下的message(评论内容)

        数据得到了,就开始写代码了。

第三步:请求和数据清洗代码

请求主评论的内容

import requests
import jieba
import time
import csv
from pyecharts.charts import WordCloud

# 得到csv这个对象,一遍下面的存储使用
cfile = open('bilibili评论数据.csv','w+',encoding='utf8')
csv_file = csv.writer(cfile)

url = 'https://api.bilibili.com/x/v2/reply/main?jsonp=jsonp&next=0&type=1&oid=48487753&mode=3&plat=1&_=1667131834151'
resp = requests.get(url).json()
# 声明一个变量进行计数,我只需要获得200条数据就可以了
count = 0
# 数据清洗得到主评论
for i in resp['data']['replies']:
    # 获取评论id和页数,用作自评的请求参数
    rpid = i['rpid']
    rcount = i['rcount']
    # 获得评论内容
    content = i['content']['message']
    csv_file.writerow([content])
    print(rpid,content)

 依据上面的代码,我们需要请求子评论的内容

第四步:分析子评论

 和上面的操作一项,按  F12  打开开发者工具

点击【点击查看】

 操作完成之后就会得到子评论的数据包

然后复制子评论的url

删除掉不用的参数

删掉这个参数:callback=jQuery172014925829441866467_1667131832049& 

结构也与主评论的结构一样

接下来就是结合上面的代码,进行请求

第五步:子评论数据获取

import requests
import jieba
import time
import csv
from pyecharts.charts import WordCloud

# 得到csv这个对象,一遍下面的存储使用
cfile = open('bilibili评论数据.csv','w+',encoding='utf8',newline='')
csv_file = csv.writer(cfile)

url = 'https://api.bilibili.com/x/v2/reply/main?jsonp=jsonp&next=0&type=1&oid=48487753&mode=3&plat=1&_=1667131834151'
resp = requests.get(url).json()
# 声明一个变量进行计数,我只需要获得200条数据就可以了
count = 0
# 数据清洗得到主评论
for i in resp['data']['replies']:
    # 获取评论id和页数,用作自评的请求参数
    rpid = i['rpid']
    rcount = i['rcount']
    # 获得评论内容
    content1 = i['content']['message']
    # 写入csv文件中
    csv_file.writerow([content1])
    print(rpid,content1)
    count += 1
    """ 请求子评论 """
    # 循环页数发送请求
    for j in range(1,rcount):
        print(j)
        # root 参数为主评论id
        # pn 参数为页数
        url=f'https://api.bilibili.com/x/v2/reply/reply?jsonp=jsonp&pn={j}&type=1&oid=48487753&ps=10&root={rpid}&_=1667134065802'
        resp = requests.get(url).json()
        # 这里可能会得到没有子评论的主评论,要进行为空处理
        if resp['data']['replies'] !=None:
            # 有数据之后在进行循环获取,不然会报错
            for m in resp['data']['replies']:
                # 获得评论内容
                content2 = m['content']['message']
                # 写入csv文件中
                csv_file.writerow([content2])
                count += 1
                # 当数据大于200条时,我们就退出程序
                if count > 200:
                    exit()
        # 每发送子评论请求,进行休眠2秒钟,不然ip会被禁掉
        time.sleep(2)

 看一下csv数据:

 第六步:制作词云图

import pandas as pd
from pyecharts.charts import WordCould
df = pd.read_csv('bilibili评论数据.csv')
print(df.head())
# 导入停词文件
stopword = open('stopword.txt', encoding='utf8').read().split('\n')
# 进行分词
data = jieba.lcut(''.join(df.content))
# 统计词频
word = {}
for i in data:
    if i not in stopword:
        word[i] = word.get(i, 0) + 1
# 绘制词云图
wc = WordCloud()
wc.add('', word.items(), shape='triangle')
wc.render('Ciyun.html')

 运行后或出现 html文件,打开html文件就行,结果如下:、

 这样不是很开看,既然是鬼灭的评论,就用鬼灭人物做一个词云图吧

 就用这个了。

作为掩膜的图像需要透明的图片,这个有点难找

找的难,自己造一个不就可以了。用opencv轻轻松松搞定

呦西!!!

添加mask_image参数,然后把刚刚用opencv生成的照片imgcy,png,添加进这个参数

wc.add('', word.items(), shape='triangle',mask_image='imgcy.png')

 效果不是太明显,好歹样子还是出来了,哈哈哈!

告辞,盆友们!!

Python网络爬虫(四):b评论
lyccomcn的博客
04-04 501
本文不对数据采集的过程做探讨,直接上代码。
springboot的b评论爬虫.zip
01-19
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、点地、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网造成过大负担或触发反爬虫机制,爬虫需要遵守网的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网的使用政策,并确保对被访问网的服务器负责。
B弹幕、评论爬虫+生成.zip
03-01
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、点地、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网造成过大负担或触发反爬虫机制,爬虫需要遵守网的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网的使用政策,并确保对被访问网的服务器负责。
电影评论爬虫程序
05-31
电影评论爬虫程序,从豆瓣网爬取电影评论。欢迎大家使用。
B思政课和文化自信、中国医学史视频评论爬虫.zip
01-19
大致思路如下: 1.B首页搜索【思政课】,发现一个页面有20个视频,我们将所有视频的链接以及标题等数据存放到csv文件中 2.根据上述的csv文件将得到的视频网址一个个请求,得到av号码 3.根据av号码构造评论链接地址 4.使用json()进行解析,将评论数据写入新的csv文件中
B视频爬虫.py
08-25
Python 爬虫小项目
python爬虫:Ajax异步爬取数据(b评论区)
qq_46145027的博客
04-07 3603
爬虫时遇到很多数据并不在访问网址的返回包里,而是随着用户下拉逐步加载的,也就是用到了Ajax,那么这时我们该如何爬取我们想要的数据呢?
爬取b任意视频下的所有评论【附完整代码】
榕城候佳人的博客
08-15 5086
今天花了一上午探究如何用selenium获取b视频下面的评论,一开始只是想用一个视频来练练手,后面逐渐改成了所有视频都适用的完整代码。因为我是用的jupyter,所以整个代码包括两个部分。下面这段代码用于完成获取自动登录b所需的cookie。下面是第二段代码,具体讲解我会放在b上。下面的代码大家可以直接运行,还可以更换视频地址。
【2023最新B评论爬虫】用python爬取上千条哔哩哔哩评论
马哥的专栏
09-12 7834
马哥原创:用python爬取哔哩哔哩的B评论数据,单个视频可爬上万条。
基于python requests库的bilibili爬虫简单尝试以及数据分析及可视化
weixin_63160898的博客
02-06 6907
本文将从“爬取BiliBili Vtuber区直播信息为切入点,来探讨requests, re等库的基础应用。在爬取信息之后,本文将通过matplotlib以及pandas库做数据分析以及可视化
Python爬虫携程成都旅游景点评论 pyecharts 画点画各地游客航线 wordcloud情感分析 selenium
01-12
Python爬虫获取携程成都旅游攻略网 获取景点评论 pyecharts程度地画点 画各地游客航线 统计 成都民宿航班柱状箭头雷达 html jieba分 wordcloud 情感分析 selenium浏览器多页爬虫+数据分析+统计...
使用Python中的pyecharts库读取csv文件绘制
12-22
python代码 from pyecharts import WordCloud import pandas as pd wd = pd.read_csv('cp.csv') word = [i[0] for i in wd[['关键']].values] value = [i[0] for i in wd[['频']].values] wordCloud = WordCloud...
B视频python爬虫下载
03-29
B视频python爬虫下载,注意修改video_bvid,通过视频链接可以查看。B视频python爬虫下载,注意修改video_bvid,通过视频链接可以查看。B视频python爬虫下载,注意修改video_bvid,通过视频链接可以查看。B...
Python数据可视化源码实例Pyecharts库集合】.zip
07-12
谢谢大家的支持!
商品评论 爬虫 & & 情感分析.zip
03-26
某电商平台评论的爬取、绘制和情感分析,供学习使用。
SpringBoot中实现发送邮件
最新发布
hac1322的博客
04-30 639
当你添加了spring-boot-starter-mail依赖后,Spring Boot会自动配置JavaMailSender实例,并根据application.yml文件中的属性来配置这个实例。你可以直接在需要发送邮件的地方通过@Autowired注解将JavaMailSender实例注入到你的类中,然后使用它来发送邮件。:首先,需要在你的pom.xml文件中添加Spring Boot的邮件发送器依赖。,简化了在Spring Boot应用程序中发送电子邮件的设置过程。Spring Boot的。
python学习笔记----循环语句(四)
取个名字太难了a的博客
04-28 1110
随机数种子在生成随机数的过程中起到一个非常重要的作用。它是用于初始化随机数生成算法(伪随机数生成器)的初始值。随机数种子的作用可重复性:当你使用特定的种子值初始化随机数生成器时,即使在不同的运行环境或不同时间,生成的随机数序列都将是相同的。这对于调试和测试非常重要,因为它允许程序的行为在使用随机数时保持一致。控制随机性:种子提供了一种方法来控制随机数生成过程。通过改变种子,你可以获得不同的随机数序列,这对于模拟和其他需要随机输入的应用非常有用。
python复习(三)
qq_43710593的博客
04-29 429
类是一种面向。
python爬虫b评论
09-21
引用内容中提到了使用Python爬虫抓取B评论的代码。根据引用和引用[3]的代码,可以看出以下是实现目标的关键步骤: 1. 导入所需的库,如requests、jieba和csv。 2. 设置请求的URL,其中包括视频的oid(视频的唯一标识符)。 3. 发送GET请求并将响应转换为JSON格式。 4. 使用循环遍历响应中的评论数据。 5. 提取所需的评论内容并保存到CSV文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Message: session not created: This version of ChromeDriver only supports Chrome version 98 13290
  • python爬虫基础小案例, scrapy框架,思路和经验你全都有。 9891
  • python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(一) 5302
  • opencv-python 人脸识别检测+人脸马赛克 3861
  • python 爬虫b站评论,并且利用pyecharts绘制评论词云图 3599

分类专栏

  • python 8篇
  • pyecharts 1篇
  • django 2篇
  • python爬虫 5篇
  • 计算机视觉 2篇
  • opencv 3篇
  • selenium 2篇
  • re正则表达式 1篇
  • scrapy框架 1篇

最新评论

  • 变位词,java代码实现

    CSDN-Ada助手: Java 技能树或许可以帮到你:https://edu.csdn.net/skill/java?utm_source=AI_act_java

  • python 爬虫b站评论,并且利用pyecharts绘制评论词云图

    ssulakii: 为什么会一直显示data问题?

  • python爬虫基础小案例, scrapy框架,思路和经验你全都有。

    m0_66319889: 命令窗口运行有结果没报错,但是没有book.json文件是怎么回事呀

  • pyecharts 分布式直方图绘制,最详细的代码你值得拥有!!

    mmqdm: 直方图,不应该加一个caterory_gap=0嘛

  • 详细解决python 和 anaconda 系统变量冲突的办法,pip怎么用都不得劲啊

    吃吃753: 博主,想问你annaconda的根目录怎么找呢,安装是别人给我搞的,我找不着~

最新文章

  • 变位词,java代码实现
  • pyecharts 【留存矩阵图】分析抖音用户的留存情况
  • Django QuerySet Api 详细介绍
2024年1篇
2023年1篇
2022年19篇

目录

目录

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源源佩奇

一起进步,提高自己。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司垦利网站排名优化报价遂宁企业网站设计价格贵港网站设计黔东南优化多少钱甘孜网页设计襄阳网站建设设计推荐汕头建网站推荐咸阳企业网站建设哪家好烟台关键词按天收费报价承德网站搭建多少钱果洛企业网站设计公司定西网站制作公司海东网站优化按天收费价格蚌埠建站推荐兰州网站改版多少钱淮南模板网站建设报价观澜外贸网站建设哪家好林芝品牌网站设计价格黑河百度seo公司潜江营销网站多少钱运城SEO按效果付费报价上海营销型网站建设公司平凉设计网站哪家好塘坑seo网站优化价格衡水关键词排名包年推广推荐永州企业网站设计永湖优化长春营销型网站建设推荐中山SEO按效果付费报价三明seo哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化