文章目录

前言

一、爬取b站评论

1.selenium配置

2.代码

二、制作词云图

1.下载停用词

2.代码

3.注意事项

三、制作成品

1.初期成品

2.成品


前言

b站视频下的评论是下拉加载的。要想爬取所有评论,要么找到加载评论的链接寻找其规律,要么下拉到低等待页面评论全部加载。我小白一个,找不出规律,用下拉这种笨办法。

要是评论太多,下拉要好久,于是上网发现有selenium可以模拟浏览器的各种行为。这个不仅要导入模块,还要下载浏览器驱动,要配置好一会儿。

制作词云图还要停用词,网上可以下载,但还是要根据需求自己加些词。


提示:以下是本篇文章正文内容,下面案例可供参考

一、爬取b站评论

1.selenium配置

附上参考链接。如何配置selenium

2.代码

附上参考链接。用selenium爬取b站评论

上面的代码下拉只有一两次,拉不到低。我改进了一下,可以自己定下拉几次。

代码如下:

from selenium import webdriver
from time import  sleep
import sysl1=[]
av=input("请输入av号:")
from selenium.common.exceptions import NoSuchElementException  #防止错误def pa(): #定义函数,进行爬取list = driver.find_elements_by_css_selector('#comment > div > div.comment > div.bb-comment > div.comment-list > div > div.con > p')for i in list:l1.append(i.text)def la(a):#定义下拉函数for i in range (a):driver.execute_script('window.scrollBy(0,1000)')sleep(0.25)return
url = 'https://www.bilibili.com/video/'+av
edge_path = "D:\Edge驱动\msedgedriver.exe" #驱动的路径
driver = webdriver.Edge(executable_path=edge_path)
driver.get(url)
sleep(7)
driver.execute_script('window.scrollBy(0,document.body.scrollHeight)')
sleep(1.5)#页面滚动到底部
driver.execute_script('window.scrollBy(0,1000)')
sleep(1.5)
#等待网络
la(300)#下拉的次数,定太少爬不全,定太多爬太久,自己多试几次
sleep(7)
pa()
while (1):try:c =driver.find_element_by_css_selector("#comment > div > div.comment > div.bb-comment > div.bottom-page.paging-box-big > a.next")#print(c)c.click()#模拟点击下一页,当没有下一页的时候就会进行下面一个操作sleep(5)pa()sleep(0.5)except NoSuchElementException as e:print("没")break
for i in l1:print(i)f=open('神兵小将.txt','w',encoding='utf-8')#创建文本文件
f.writelines(l1)#保存到文本文件中

这个只能爬取视频下的评论,不能爬取评论的评论。

二、制作词云图

1.下载停用词

我下载了一个停用词,又根据制作词云图的结果进行了一些添加。提取码是ybdw

2.代码

from wordcloud import WordCloud#导入词云模块
import PIL .Image as image#导入图片模块
import numpy as np#导入矩阵计算模块
import jieba#导入分词模块
import re#导入正则表达模块def trans_CN(text):#定义分词函数,将连续的文本分为词组word_list = jieba.cut(text)#将文本切开#print(word_list)result = " ".join(word_list)#词组间插入空格result = result.replace("小破 站","小破站")#将划错的词连回去result = result.replace("憨 憨","憨憨")#将划错的词连回去result = result.replace("b 站","b站")#将划错的词连回去result = result.replace("爷 青回","爷青回")#将划错的词连回去result = result.replace("虎父无犬 子","虎父无犬子")#将划错的词连回去#print(result)single = re.compile(r'( . )',re.S)#定义正则表达式,将单个字挑出Single = re.findall(single,result)#将单个字挑出,放入Single列表for item in Single:#遍历单个字列表result = result.replace(str(item)," ")#把每个字替换为空格passreturn result#将结果作为函数返回值with open("C:\\Users\\Ophiuchus\\source\\repos\\Python爬虫学习项目\\PythonApplication2\\神兵小将评论.txt",encoding='utf-8') as fp:#根据文件路径打开源数据text = fp.read()#读取文本内容到texttext  = trans_CN(text)#执行分词函数,并将返回值赋予textmask = np.array(image.open("C:\\Users\\Ophiuchus\\Pictures\\Saved Pictures\\神兵小将.png"))#打开词云图的形状图片,并定义为掩膜wordcloud = WordCloud(max_words=400,#定义词云图显示的最大词量,默认为200mask=mask,#确定掩膜min_font_size=1,#确定最小词大小max_font_size=50,#确定最大词大小scale=5,        #确定清晰度,按比列放大,数值越大,词云越清晰#background_color='white',设定背景颜色background_color=None, mode="RGBA",#将背景颜色设定为透明stopwords = [line.strip() for line in open('C:\\Users\\Ophiuchus\\Desktop\\stopword.txt', 'r', encoding="gb18030").readlines()],#导入停用词font_path = "C:\\Windows\\Fonts\\msyh.ttc"#确定字体).generate(text)#词云图的各项设置image_produce = wordcloud.to_image()#制作词云图image_produce.save("filename.png")#保存名称与路径image_produce.show()#展示词云图

3.注意事项

  • jieba划词并不准确,比如会把“小破站”划成“小破”和“站”两个词,因此需要把这些词接回去。
  • 尽管有停用词屏蔽了很多无效词,但还是有许多单个字的词在词云图,意义并不明确。因此进行了对单个字挑出剔除的工作。
  • 为了让词云图显得更紧密,可以把最大词的大小与最小词的大小差值设大些。字太小了会模糊,可以通过scale调整清晰度。
  • 记得背景颜色设置成透明,这样更方便后期使用。也可以改成白色。

三、制作成品

1.初期成品

这个看不太清词云图形状,可以在底下垫一层原图,通过ppt在中间加一层半透明的白色蒙版。透明度10%到20%就行了,太透明了影响看词的效果。

2.成品

哇咔咔咔,开心。

python用selenium爬取b站评论并制作词云图相关推荐

  1. 《进击的巨人第三季part2》爬取豆瓣网友评论,制作词云图

    莴苣第三季part2实在是太棒了!!!制作和配音都绝了,看起来啊!!尤其<白夜>真的是神回! 先放个结果 自动翻页和下载评论部分的代码: def douban_page_generator ...

  2. python爬取爱情公寓电影评论并制作词云

    python爬取爱情公寓电影评论并制作词云 前言:     一直想研究研究如何生成词云,今天抽点时间给大家分享一下制作词云的过程,本文重在研究词云如何制作,由于时间仓促,至于爬取的数据量不大,大家可自 ...

  3. Python爬虫——selenium爬取网易云评论并做词云

    大家好!我是霖hero 到点了上号网易云,很多人喜欢到夜深人静的时候,在网易云听音乐发表评论,正所谓:自古评论出人才,千古绝句随口来,奈何本人没文化,一句卧槽行天下!评论区集结各路大神,今天我们来爬取 ...

  4. python爬取b站弹幕_爬取B站弹幕并且制作词云

    目录 SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠. 爬取弹幕 1. 从手机端口进入网页爬取找到接口 2.代码 import requests from ...

  5. python自动化爬取网易云歌词并制作词云图

    图片需要用透明图片:这就体现你的搜索能力了 import jieba # 中文分词库 import wordcloud # 词云图库 import imageio # 图像模块#读取图片 file = ...

  6. python爬取B站评论制作词云

    python爬取B站评论制作词云 江山代有才人出,B站评论占一半 废话不多说,咱们直接上代码` import imageio import jieba import wordcloud import ...

  7. 【Python】大数据挖掘课程作业1——使用爬虫爬取B站评论、弹幕与UP主的投稿视频列表

    [Python]大数据挖掘课程作业1--使用爬虫爬取B站评论.弹幕与UP主的投稿视频列表 数据挖掘部分的基本目标是:对于指定的UP主,能够获取其投稿视频列表:对于指定的视频,能够获取其视频标签.评论( ...

  8. 【Python】使用Python做简易爬虫爬取B站评论

    目录 一.前言 二.分析网页 三.代码 1.头 2.获取根评论 3.获取子评论 四.总代码 五.总结 一.前言 B站评论没有查找功能,就随手写了一个爬虫爬取B站评论存储到本地txt中 首先需要安装py ...

  9. python爬取b站视频封面_学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面...

    学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面 import os import requests import re import json from bs4 import B ...

最新文章

  1. Cocos2d-x-3.x特性变化
  2. swift_025(Swift 的自动引用计数(ARC)
  3. HIVE和HBASE区别
  4. iOS中改变部分字体颜色
  5. 《云计算》学习笔记2——Google的云计算原理与应用(GFS和MapReduce)
  6. PID控制器改进笔记之五:改进PID控制器之串级设定
  7. 智能运维就是由 AI 代替运维人员?
  8. svn下载项目到指定文件夹,以及更新提交
  9. Delphi制作打印面签案例
  10. Instrument初识
  11. Greenplum助医疗大数据从“奢侈品”走向常态化
  12. python程序员买西瓜代码_朴素贝叶斯python代码实现(西瓜书)
  13. 模拟调制—DSB信号及生物电信号特性测量分析实验报告
  14. 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四)
  15. TP4056电池(BAT)引脚输出高电平
  16. KBPC1010-ASEMI液压升降装置方案整流桥10A 1000V
  17. Linux命令 - gunzip命令
  18. WPF 使用Squirrel自动更新应用
  19. mysql添加构成组合约束_mysql约束汇总
  20. LaneCatTM网猫软件简介和主要功能_20060101

热门文章

  1. Carbide LED-qpnp相关问题
  2. ESLint couldn‘t find the config “standard“ to extend from 解决办法
  3. InvalidStorage.NotFound The StorageLocation does not exist.报错的解决方法
  4. 2023年5月软考报名开始,自学备考群同步启航~
  5. 2023年总结的web前端学习路线分享(学习导读)
  6. @font-face的format属性解释
  7. 【Matlab】混合整数规划
  8. 微信和业务平台绑定项目和业务
  9. 基于人脸识别技术的校园宿舍管理系统
  10. 微信小程序与H5内嵌网页交互实现地图定位功能