python学习工具技能小助手爬虫专题

我爬取了汪峰146首歌词,却找不到他的梦想

2017-03-14  本文已影响408人  Mrchw
梦想

最近在学scrapy框架,看了不少大神的代码,还是感觉云里雾里,最好的学习就是实践,于是就有了今天的题目。我爬取了汪峰老师的146首歌词,并对他们进行分词、统计词频,然后用工具进行了可视化。

整个项目分3块:

1.歌词爬取

主要用scrapy框架进行,像素级参照了@LEONYao的文章我爬了咪蒙的278篇文章做词频统计
歌词地址: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.词频统计

主要用jieba模块和停用词表,参照了@_CallMe靠谱叔 用jieba分词提取关键词做漂亮的词云的代码

词频.PNG

3.可视化

你的梦想是什么? 我找不到了ORZ

词云中字体大小是根据词频的大小设置的,通过分析词频,我得到了个惊人的发现,竟然没有找到汪老师的梦想,本来打算洗洗睡的我,顿时垂死梦中惊坐起,发现有点对不起汪老师,于是我拿着放大镜,翻着词频统计最后才在第35位找到了梦想两个字,真是细思恐极啊~

推荐两个小工具:
词云工具 很多人介绍过的 tagul
图云工具 也是一款神器shape collage

另外,词频的统计比较粗糙,没有区分词性,目前还没找到好的解决办法。哪位大神如果有好的办法,望不吝赐教~

上一篇下一篇

猜你喜欢

热点阅读