[爬虫]网抑云音乐评论
[爬蟲]網抑云音樂評論
前言
自打開網抑云之后,我久久無法忘記,是它才能帶給我內心世界的波濤洶涌。我左手拿起它,右手放下它,一日復一日,我終于完成了《The Spider Of Music-163》這個還勉強讓我滿意的作品
PS.我也沒想到,我這么懶還會去擴展[實戰]爬取網抑云音樂評論,(攤牌了,其實我把它當作犁牛克斯這門課的大作業)
所需環境
開發工具
- HBuilder X
 - Pycharm 2019.3
 
前端所用框架及插件
- Layui
 - Swiper
 - jQuery
 
Python使用的相關庫:
- 內置庫
 - flask
 - flask_cors
 - aip
 - pymysql
 - pycryptodome
 - bs4
 - numpy
 - pillow
 - jieba
 - wordcloud
 
項目結構
前端結構
index.html為網站主頁,
layui、jquery.min.js和swiper是前端所需的模塊,去對應官網下載后,放著就行,
css和js為頁面所需的樣式與腳本代碼,
img存放圖片,m_song存放不同功能的子頁面
. ├── css │ ├── comments.css │ └── index.css │ ├── js │ ├── index.js │ └── jquery.min.js │ ├── layui ├── swiper ├── img │ ├── m_song │ ├── comments.html │ ├── comments_res.html │ ├── search_res.html │ └── wordcloud.html │ └── index.html后端結構
-  
app.py為啟動flask的核心,也寫著對應網站路徑的路由
 -  
utils存放工具類
 -  
comments.txt存儲爬取歌曲后的評論,供詞云使用
 -  
MySong.py為爬蟲核心
 -  
MyWorldcloud.py生成詞云,teemos.jpg和zifu.ttf為生成詞云所需的背景圖和微軟雅黑字體,wordcloud.png為生成后的詞云圖
 
項目原理
本項目是基于[實戰]爬取網抑云音樂評論的可視化擴展,爬蟲原理部分就不贅述了,詳見[實戰]爬取網抑云音樂評論
本項目采用前后端分離的架構,前后端可以分別獨立開發,我前端開發使用HBuilder X,后端開發使用Pycharm,這樣也方便后期的維護
由于我比較懶,且項目也比較簡單,流程圖我就不畫了,我簡單的口述一下
index.html主頁里有三個模塊
- 搜索歌曲
 - 歌曲搜索結果列表。由一個iframe即search_res.html組成
 - 詞云與熱評。由一個iframe即comments.html組成,而comments.html頁面包括wordcloud.html和comments_res.html
 
這三個模塊通過swiper來控制出場順序,點擊相應按鈕后才會切換到下一個模塊
點擊按鈕
點擊搜索按鈕:
- index.html向服務器發起ajax請求,請求的數據為搜索的歌曲名
 - 服務器根據接收到的數據進行爬蟲,并返回歌曲列表json給search_res.html
 - index.html使用swiper將頁面切換到第二個模塊
 - search_res.html根據得到的json可視化展示歌曲列表信息
 
點擊查看評論按鈕:
- search_res.html頁面向后端發起ajax請求,請求的數據為查看評論的歌曲ID
 - 服務器根據接收到的數據進行爬蟲,保存txt評論信息
 - index.html使用swiper將頁面切換到第三個模塊
 - wordcloud.html向服務器發起ajax請求,服務器根據txt制作詞云后,返回詞云圖片
 - comments_res.html向服務器發起ajax請求,根據得到的json可視化展示精彩評論
 
總結
個人感覺本項目似乎也沒啥技術含量,非要說技術含量就是爬取評論和歌曲名的解密過程。。。并且有的代碼寫的挺亂的,也不規范,湊合著用吧,懶得改了,有啥建議都可以提哈
項目結果圖
主頁類似百度搜索的界面,輸入歌名就行歌曲的搜索
圖1 主頁
第二個頁面,類似在各大音樂平臺搜索歌曲的結果
圖2 搜索結果
第三個頁面,展示所查看歌曲的詞云圖以及熱門評論
圖3 詞云和評論
項目部署
本項目使用前后端分離的架構,因此前端后端需要分別部署
本文以Centos7為例,使用之前需要將前端這三個文件里的出現的IP地址192.168.160.137替換為你自己服務器的IP地址
-  
comments_res.html
 -  
wordcloud.html
 -  
index.js
 
前端部署
前端部署在apache中,啟動后,將前端的程序放入/var/www/html中,使用IP地址訪問即可
# 安裝apache yum -y install httpd # 啟動Apache systemctl start httpd # 設置httpd服務開機啟動 systemctl enable httpd后端部署
后端所需python3環境,由于系統自帶的是python2,因此需要安裝python3,安裝完python3后,輸入python3和pip3就可以使用python3了
# 安裝依賴包 yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel# 去官網下載相關版本的python wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz# 解壓壓縮包并安裝 tar -xvJf Python-3.6.2.tar.xz cd Python-3.6.2 ./configure --prefix=/usr/local/python3 make && make install# 創建軟連接 ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3安裝本項目所需的python庫
pip3 install flask pip3 install flask_cors pip3 install aip pip3 install pymysql pip3 install pycryptodome pip3 install bs4 pip3 install numpy pip3 install pillow pip3 install jieba pip3 install wordcloud覺得速度慢的話可以換清華源,可以使用-i參數指定清華鏡像
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple XXXXXX可以永久設置鏡像源
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple進入后端文件夾內,輸入指令啟動運行后端
python3 app.py如果需要外網訪問或虛擬機外訪問,則需要關閉Centos7自帶的防火墻
# 停止firewall systemctl stop firewalld.service # 禁止firewall開機啟動 systemctl disable firewalld.service至此,項目部署完畢
Github鏈接:https://github.com/teemos666/The-Spider-Of-Music-163
參考文獻
[1] 提莫莫 《[實戰]爬取網抑云音樂評論》 (https://blog.csdn.net/weixin_45766049/article/details/120504972)
[2] Java后端何哥 《Python文本挖掘:詞云圖》 (https://blog.csdn.net/CSDN2497242041/article/details/77175112)
[3] 各種百度
[4] 各種B乎
[5] 各種CSDN
總結
以上是生活随笔為你收集整理的[爬虫]网抑云音乐评论的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: python列表换行输出_Python从
 - 下一篇: 像素画,治愈系超萌!看了这个,我都心痒了