怎么使用Python爬取网易云歌曲评论实现词云图(python,开发技术)

时间:2024-04-28 00:26:48 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

环境使用

Python 3.8 解释器 3.10

Pycharm 2021.2 专业版

selenium 3.141.0

代码实现

先是安装、导入所需模块

fromseleniumimportwebdriver#导入浏览器的功能importre#正则表达式模块,内置importtime#时间模块,程序延迟

1. 创建一个浏览器对象

driver=webdriver.Chrome()

2. 执行自动化

driver.get('https://music.163.com/#/song?id=488249475')#selenium无法直接获取到嵌套页面里面的数据driver.switch_to.frame(0)#switch_to.frame()切换到嵌套网页driver.implicitly_wait(10)#让浏览器加载的时候,等待渲染页面

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

js='document.documentElement.scrollTop=document.documentElement.scrollHeight'driver.execute_script(js)

3.解析数据

divs=driver.find_elements_by_css_selector('.itm')#所有divcss语法:定位到html数据/xpath/正则fordivindivs:cnt=div.find_element_by_css_selector('.cnt.f-brk').textcnt=re.findall(':(.*)',cnt)[0]#中英文有区别print(cnt)

保存数据

翻页

forpageinrange(10):#控制翻页速度太快#翻页,找到下一页标签,点击?driver.find_element_by_css_selector('.znxt').click()time.sleep(1)#selenium欲速则不达

保存为txt文件

withopen('contend.txt',mode='a',encoding='utf-8')asf:f.write(cnt+'\n')

运行代码得到结果

怎么使用Python爬取网易云歌曲评论实现词云图

再做个词云

导入相关模块

importjieba#中文分词库pipinstalljiebaimportwordcloud#制作词云图的模块pipinstallwordcloudimportimageio

读取文件数据

withopen('contend.txt',mode='r',encoding='utf-8')asf:txt=f.read()print(txt)

词云图 分词<中文(词语)> 基于结果

txt_list=jieba.lcut(txt)print('分词结果:',txt_list)

合并

string_=''.join(txt_list)#1+1=2字符串的基本语法print('合并分词:',string_)

创建词云图

wc=wordcloud.WordCloud(width=1000,#图片的宽height=800,#图片的高background_color='white',#图片的背景色font_path='msyh.ttc',#微软雅黑scale=15,#词云图默认的字体大小#mask=img,#指定词云图的图片#停用词&lt;语气词,助词,....stopwords=set([line.strip()forlineinopen('cn_stopwords.txt',mode='r',encoding='utf-8').readlines()]))print('正在绘制词云图...')wc.generate(string_)#绘制词云图wc.to_file('out.png')#保存词云图print('词云图绘制完成...')

最后效果

怎么使用Python爬取网易云歌曲评论实现词云图

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:怎么使用Python爬取网易云歌曲评论实现词云图的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:html5与传统html的区别是什么下一篇:

15 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18