python画名侦探柯南_Python实战爬B站 | 帮你梳理柯南主线剧情+弹幕

本文通过Python爬取B站《名侦探柯南》的弹幕,分析主要人物讨论次数,揭示柯南变回新一的集数,并探讨主线剧情。利用正则提取CID,爬取弹幕XML文件,通过jieba分词和词云图展示人物形象和剧情热点。
摘要由CSDN通过智能技术生成

原标题:Python实战爬B站 | 帮你梳理柯南主线剧情+弹幕

文末扫海报二维码领【本文完整代码】

皖渝 | 作者

凹凸数据 | 来源

https://mp.weixin.qq.com/s/kVsQmTIh-okzH9WZRBC0FA

1

爬取介绍

利用Chrome浏览器抓包可知, B站的弹幕文件以XML文档式进行储存,如下所示(共三千条实时弹幕)

其URL为:

不难看出, CID则是对应着各个视频的ID,接下来用 正则提取即可。

完整爬取代码记得添加【小数】领取哦~

最终的全部弹幕文件都在桌面的"柯南"文件下:

注:这里共爬取到980个弹幕文件。【B站的柯南自941集后就跳到994集(大会员才能观看的)。虽然目前更新到1032话,但并没有1032集内容,如下图所示】

2

弹幕可视化

1.主要人物讨论总次数分析

统计人数总次数

注: role.txt是主要人物名文件(需考虑到弹幕一般不会对人物的全名进行称呼,多数使用的是昵称,否则可能与实际情况相差较大。)

import jieba

import os

import pandas aspd

os. chdir( 'C:/Users/dell/Desktop')

jieba.load_userdict( 'role.txt')

role=[ i.replace( 'n', '') fori in open( 'role.txt', 'r',encoding= 'utf-8').readlines]

txt_all=os.listdir( './柯南/')

txt_all. sort(key=lambda x: int( x. split( '.')[ 0])) #按集数排序

count= 1

def role_count:

df = pd.DataFrame

forchapter in txt_al l:

names={}

data=[]

with open( './柯南/{}'.format(chapter), 'r',encoding= 'utf-8') asf:

forlinein f.readlines:

poss=jieba.cut( line)

forword in pos s:

ifword in role:

ifnames. get(word) isNone:

names[word]= 0

names[word]+= 1

df_new = pd.DataFrame.from_dict(names,orient= 'index',columns=[ '{}'.format( count)])

df = pd.concat([df,df_new],axis= 1)

print( '第{}集人物统计完毕'.format( count))

count+= 1

df.T.to_csv( 'role_count.csv',encoding= 'gb18030')

Python中,要画出名侦探柯南的形象,通常需要结合一些图形库,如PIL(Python Imaging Library,现在更常用的是其更新版本Pillow)、turtle或者是matplotlib等。由于绘制复杂的图像可能超出了纯文本环境的能力,这里我将提供一种简单的方法,比如使用turtle模块来粗略地画出柯南的基本轮廓。 首先,你需要安装turtle库,如果还没有安装,可以运行`pip install pillow` 或 `pip install matplotlib`(如果你计划使用matplotlib)。 下面是一个简单的例子,使用turtle库来绘制一个类似柯南头部的大致形状: ```python import turtle # 设置画布大小和背景颜色 t = turtle.Turtle() t.speed(0) screen = t.getscreen() screen.bgcolor("white") # 开始绘制柯南头部的简单线条 t.penup() # 抬起笔防止画线留痕 t.goto(-50, -50) # 左上角 t.pendown() t.circle(80, 90) # 圆形代表头 t.penup() t.forward(60) t.pendown() t.right(90) t.circle(-40, 90) # 小圆形代表眼睛 # 右眼 t.penup() t.forward(30) t.pendown() t.circle(-20, 90) # 鼻子和嘴巴 t.penup() t.forward(10) t.left(45) t.pendown() t.begin_fill() t.circle(10, 180) # 鼻子 t.end_fill() t.penup() t.forward(15) t.pendown() t.right(90) t.forward(10) t.right(90) t.forward(20) t.right(90) t.forward(10) # 结束并隐藏turtle t.hideturtle() # 显示图形 turtle.done() ``` 这只是一个基础版的柯南形象,如果你想制作更精细的图像,可能需要借助其他绘图软件或第三方库,如pygame或pycairo等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值