爬虫+词云——Bilibili弹幕 (chardet处理html+matplotlib.pyplot绘图)

本文介绍了如何使用Python爬取Bilibili视频的弹幕,并通过处理和统计,利用matplotlib.pyplot制作词云。首先获取弹幕地址,然后将其存储为txt文件,接着使用jieba进行分词,过滤停用词,统计词频,最后生成词云并保存图片。
摘要由CSDN通过智能技术生成

Python爬取弹幕

在bilibili得到需要爬取的视频的弹幕地址;

https://api.bilibili.com/x/v1/dm/list.so?oid=201056987 #得到bilibili弹幕地址
http://api.bilibili.com/x/player/pagelist?bvid=BV1PK4y1b7dt&jsonp=jsonp  #得到视频的oid——cid
https://www.bilibili.com/video/BV1PK4y1b7dt?t=1  #此为视频的地址——其bvid字符串放入上面即可找到cid

用getcid得到cid地址;
getdata得到弹幕数据;
savetofile将弹幕存为txt文件;

import requests
from bs4 import BeautifulSoup
import json
import chardet
import re
from pprint import pprint

def get_cid():
    url='http://api.bilibili.com/x/player/pagelist?bvid=BV1PK4y1b7dt&jsonp=jsonp'
    res=requests.get(url).text
    json_dict=json.loads(res)
    return json_dict["data"][0]["cid"]
#得到cid
def get_data(cid):
    final_url="https://api.bilibili.com/x/v1/dm/list.so?oid="+str(cid)
    final_res=requests.get(final_url)
    final_res.encoding=chardet.detect(final_res.content)['encoding']
    final_res = final_res.text
    pattern = re.compile("<d.*?>(.*?)</d>")
    data = pattern.findall(final_res)
    return data

def save_to_file(data):
    with open("dan_mu.txt",'w',encoding="utf-8"
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值