
夢(mèng)想
最近在學(xué)scrapy框架,看了不少大神的代碼,還是感覺(jué)云里霧里,最好的學(xué)習(xí)就是實(shí)踐,于是就有了今天的題目。我爬取了汪峰老師的146首歌詞,并對(duì)他們進(jìn)行分詞、統(tǒng)計(jì)詞頻,然后用工具進(jìn)行了可視化。
整個(gè)項(xiàng)目分3塊:
- 歌詞爬取與下載
- 歌詞分詞、統(tǒng)計(jì)詞頻
- 可視化處理
1.歌詞爬取
主要用scrapy框架進(jìn)行,像素級(jí)參照了@LEONYao的文章我爬了咪蒙的278篇文章做詞頻統(tǒng)計(jì)
歌詞地址: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)計(jì)
主要用jieba模塊和停用詞表,參照了@_CallMe靠譜叔 用jieba分詞提取關(guān)鍵詞做漂亮的詞云的代碼
詞頻.PNG
3.可視化

你的夢(mèng)想是什么?

我找不到了ORZ
詞云中字體大小是根據(jù)詞頻的大小設(shè)置的,通過(guò)分析詞頻,我得到了個(gè)驚人的發(fā)現(xiàn),竟然沒(méi)有找到汪老師的夢(mèng)想,本來(lái)打算洗洗睡的我,頓時(shí)垂死夢(mèng)中驚坐起,發(fā)現(xiàn)有點(diǎn)對(duì)不起汪老師,于是我拿著放大鏡,翻著詞頻統(tǒng)計(jì)最后才在第35位找到了夢(mèng)想兩個(gè)字,真是細(xì)思恐極啊~
推薦兩個(gè)小工具:
詞云工具 很多人介紹過(guò)的 tagul
圖云工具 也是一款神器shape collage
另外,詞頻的統(tǒng)計(jì)比較粗糙,沒(méi)有區(qū)分詞性,目前還沒(méi)找到好的解決辦法。哪位大神如果有好的辦法,望不吝賜教~