四十行Python代码,带你爬取热门音乐评论,制作评论词云图!

imageio

大概流程

1、selenium简单使用

2、中文分词库的使用

3、词云图的制作

先看看爬虫部分

导入浏览器的功能

from selenium import webdriver

正则表达式模块, 内置

import re

时间模块, 程序延迟

import time

创建一个浏览器对象

driver = webdriver.Chrome()

请求页面数据

driver.get(‘https://music.163.com/#/song?id=569213220’) #

selenium无法直接获取到嵌套页面里面的数据

switch_to.frame() 切换到嵌套网页

driver.switch_to.frame(0)

让浏览器加载的时候, 等待渲染页面

driver.implicitly_wait(10)

driver.page_source 获取请求页面的 html 数据

print(driver.page_source)

下拉页面, 直接下拉到页面的底部

js = ‘document.documentElement.scrollTop = document.documentElement.scrollHeight’

driver.execute_script(js)

控制翻页 速度太快

for page in range(10):

解析评论数据

divs = driver.find_elements_by_css_selector(‘.itm’) # 所有div css语法: 定位到 html 数据/xpath/正则

for div in divs:

cnt = div.find_element_by_css_selector(‘.cnt.f-brk’).text

cnt = re.findall(‘:(.*)’, cnt)[0] # 中英文有区别

print(cnt)

with open(‘contend.txt’, mode=‘a’, encoding=‘utf-8’) as f:

f.write(cnt + ‘\n’)

翻页 , 找到下一页标签, 点击?

driver.find_element_by_css_selector(‘.znxt’).click()

time.sleep(1)

效果

在这里插入图片描述

爬虫部分完事了,接下来看看词云图部分~

在这里插入图片描述

模块

import jieba # 中文分词库 pip install jieba

import wordcloud # 制作词云图的模块 pip install wordcloud

读取文件数据

with open(‘contend.txt’, mode=‘r’, encoding=‘utf-8’) as f:

txt = f.read()

print(txt)

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作词云图需要使用到两个库:`jieba`和`wordcloud`。 首先需要安装这两个库,可以在命令中输入以下命令进安装: ``` pip install jieba pip install wordcloud ``` 然后就可以开始编写Python代码了。假设我们要制作词云图数据来源于一个文本文件`text.txt`,以下是一个简单的代码示例: ```python import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt # 读取文本文件 with open('text.txt', 'r', encoding='utf-8') as f: text = f.read() # 使用jieba分词 words = jieba.lcut(text) # 将分词结果转换为以空格分隔的字符串 text = ' '.join(words) # 生成词云图 wc = WordCloud(background_color="white", width=1000, height=600, font_path='msyh.ttc') wc.generate(text) # 显示词云图 plt.imshow(wc) plt.axis("off") plt.show() ``` 以上代码中,`jieba.lcut`函数将文本进分词,并返回一个列表,列表中的每个元素都是一个分好的词语。`' '.join(words)`将分词后的列表转换为以空格分隔的字符串,用于生成词云图。`WordCloud`类用于生成词云图,可以设置词云图的背景颜色、宽度、高度和字体。最后调用`plt.imshow(wc)`和`plt.show()`显示词云图。 需要注意的是,由于词云图需要根据词语的频率来生成,因此在生成之前需要对文本进处理,例如去除停用词、数字、标点符号等。此外,还可以根据需求对分词结果进进一步的筛选和处理。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值