美文网首页python学习工具技能小助手爬虫专题
我爬取了汪峰146首歌词,却找不到他的梦想

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

作者: Mrchw | 来源:发表于2017-03-14 22:35 被阅读408次
    梦想

    最近在学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

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

    相关文章

      网友评论

      本文标题:我爬取了汪峰146首歌词,却找不到他的梦想

      本文链接:https://www.haomeiwen.com/subject/thlknttx.html