Python爬取哔哩哔哩弹幕并且造词云图简单版!!!

一,操作步骤

1.通过浏览器打开哔哩哔哩
2.选择一个播放量较合适的视频(不要太大也不要太小 大概就50万的样子)比如我用的是:https://www.bilibili.com/video/BV1th411C7wA?spm_id_from=333.851.b_7265636f6d6d656e64.1
3.按F12打开源代码,然后点击network(网络)下面的XHR。然后再点击播放视频(不播放弹幕就显示不了),这时XHR下面就有heartbeat的内容。上个图给你们看看Python爬取哔哩哔哩弹幕并且造词云图简单版!!!_第1张图片
点击这个heartbeat然后里面有一个cid 把cid的后面八位数字给复制了
4.每一个哔哩哔哩都有不同的cid,但是获取评论的网址格式是一样的:https://comment.bilibili.com/cid的八个数字.xml
5.打开获取评论的网址页面如下图所示:Python爬取哔哩哔哩弹幕并且造词云图简单版!!!_第2张图片
6.大家应该可以看到里面评论的所有内容都是包含再’d’内
那么就从d内提取所需内容

二、使用步骤

1.引入库

代码如下(示例):

import requests
from bs4 import BeautifulSoup
import lxml
import time
import pandas as pd
import jieba
from matplotlib import pyplot as plt
import wordcloud
from PIL import Image
import numpy as np

2.读入实列代码

代码如下(示例):

def main(): #定义主函数
    getdata()
def getdata(): #定义抓取网页内容的函数
    headers = {
     
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.81'
    }
    url = 'https://comment.bilibili.com/294368619.xml'  #获取评论的网页链接,这个是我随便挑的一个cid
    html = requests.get(url,headers=headers)
    bs = BeautifulSoup(html.content,'lxml')   #用beautifulsoup来解析网页
    data = []
    item = bs.find_all('d')
    for item in bs.find_all('d'):
        data.append(item.string.replace(' ',''))  #把评论的里的空格符去掉
    danmustr = ''.join(i for i in data)#把所有的评论连成字符串
    words = list(jieba.cut(danmustr)) #把字符串拆分 并且以列表返回
    word = [i for i in words if len(i)>1]  #把字符串小于等于1个的排除并以列表类型返回
    #下面创造词云库
    wc = wordcloud.WordCloud(height = 1000,width = 1000,font_path='simsun.ttc')
    wc.generate(' '.join(word)) 
    plt.imshow(wc)
    wc.to_file(r'C:\Users\13772\Desktop\PS\nanren.png')#保存图片

总结

代码运行后得到图:Python爬取哔哩哔哩弹幕并且造词云图简单版!!!_第3张图片

爬取哔哩哔哩弹幕就到这里了 如果哪里有不懂的欢迎到评论区说一下,谢谢观赏!

你可能感兴趣的:(Python爬取哔哩哔哩弹幕并且造词云图简单版!!!)