夢想
最近在學scrapy框架,看了不少大神的代碼,還是感覺云里霧里,最好的學習就是實踐,于是就有了今天的題目。我爬取了汪峰老師的146首歌詞,并對他們進行分詞、統(tǒng)計詞頻,然后用工具進行了可視化。
整個項目分3塊:
- 歌詞爬取與下載
- 歌詞分詞、統(tǒng)計詞頻
- 可視化處理
1.歌詞爬取
主要用scrapy框架進行,像素級參照了@LEONYao的文章我爬了咪蒙的278篇文章做詞頻統(tǒng)計
歌詞地址:https://mojim.com/cnh104044-A2.htm
上代碼
import scrapy
from bs4 import BeautifulSoup
from ali.items import AliItem
class wang(scrapy.Spider):
name = 'wang'
def start_requests(self):
start_url=['https://mojim.com/cnh104044-A2.htm']
for url in start_url:
yield scrapy.Request(url=url,callback=self.parse_getlink)
def parse_getlink(self,response):
n=0
#print response.url
soup = BeautifulSoup(response.body,'lxml')
for i in soup.find_all('div',id='inS'):
for j in i.find_all('a'):
url = j.get('href')
url = 'https://mojim.com' + str(url)
yield scrapy.Request(url=url, callback=self.parse)
n+=1
print n
def parse(self,response):
item = AliItem()
soup = BeautifulSoup(response.body,'lxml')
for i in soup.find_all('dd',id='fsZx3'):
item['content'] = i.get_text()
yield item
2.詞頻統(tǒng)計
主要用jieba模塊和停用詞表,參照了@_CallMe靠譜叔 用jieba分詞提取關鍵詞做漂亮的詞云的代碼
詞頻.PNG
3.可視化
你的夢想是什么?
我找不到了ORZ
詞云中字體大小是根據(jù)詞頻的大小設置的,通過分析詞頻,我得到了個驚人的發(fā)現(xiàn),竟然沒有找到汪老師的夢想,本來打算洗洗睡的我,頓時垂死夢中驚坐起,發(fā)現(xiàn)有點對不起汪老師,于是我拿著放大鏡,翻著詞頻統(tǒng)計最后才在第35位找到了夢想兩個字,真是細思恐極啊~
推薦兩個小工具:
詞云工具 很多人介紹過的 tagul
圖云工具 也是一款神器shape collage
另外,詞頻的統(tǒng)計比較粗糙,沒有區(qū)分詞性,目前還沒找到好的解決辦法。哪位大神如果有好的辦法,望不吝賜教~