我爬了咪蒙的278篇文章做词频统计

作者: LEONYao | 来源:发表于2016-12-24 21:26 被阅读1096次

最近想学做数据分析,可是干啃书实在太无聊,看着看着就走神了。所以干脆找点有意思的事情做。碰巧看到知乎上有人教怎么做词频统计还有图片https://www.zhihu.com/question/28975391/answer/100796070
又突然想起之前看到有人爬咪蒙的文章做统计,我想了想干脆我也做咪蒙的词频统计吧。

首先,我得先找到咪蒙的所有文章。由于周末在家,我用的是六年前的老笔记本,实在太卡。我也不打算爬她的公众号了。
这个我百度一下去找现成的她的文章。
http://www.360doc.com/content/16/1026/12/34624569_601474728.shtml

火狐截图_2016-12-24T12-59-38.900Z.png 火狐截图_2016-12-24T13-06-12.603Z.png

这次我用scrapy框架来爬取,上代码(不懂scrapy的童鞋请自行看官方文档学习基础知识)
spider

import scrapy
from bs4 import BeautifulSoup
from ali.items import AliItem
class ali(scrapy.Spider):
    name = 'aliyun'
    n=0

    def start_requests(self):
        start_url=['http://www.360doc.com/content/16/1026/12/34624569_601474728.shtml']
        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('td',id='artContent'):#定位元素,拿到每篇文章的链接
            for j in  i.find_all('a'):
               url= j.get('href')
               yield scrapy.Request(url=url, callback=self.parse)
               n=n+1

        print n


    def parse(self,response):
        item = AliItem()
        soup = BeautifulSoup(response.body,'lxml')
        for  i in  soup.find_all('div',id='js_content'):#定位元素,拿到每篇文章的内容
            item['content'] = i.get_text()
            yield item#把内容传到pipeline上去处理

爬虫的逻辑写完了,然后我们到pipeline去处理爬回来的内容

# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html


class AliPipeline(object):
    def process_item(self, item, spider):#把爬回来的文章内容写到mimeng.txt上去
        f=open('mimeng.txt','a')
        content = item['content'].encode('utf-8')
        f.writelines(content)
        f.close()
        return item
QQ截图20161224211635.png

然后我们就要对文章内容进行分词了!这里用到jieba这个库,没错就是结巴。
写个新的py

import jieba
    f = open('mimeng.txt', 'r',encoding='utf-8').read()
    w = open('mimengcount.txt','w')
    words = list(jieba.cut(f))#用jieba分词
    for word in words:
        if len(word) > 1:
            word = word + '\n'
            #a.append(word)
            w.writelines(word)
    w.close()
QQ截图20161224211842.png

接下来就要用四个库来进行词频统计和作画
numpy,wordcloud,PLS以及matplotlib
下面这段代码我是复制别人的,其实我也不懂那几个库哈哈

import jieba
from wordcloud import WordCloud
import PIL
import matplotlib.pyplot as plt
import numpy as np

def wordcloudplot():
    text = open('mimengcount.txt').read()
    path='ziti.ttf'#字体文件,没有这个中文会乱码,自己去百度下载
    #path=unicode(path,'utf8').encode('gb18030')
    alice_mask = np.array(PIL.Image.open('3e2f.jpg'))
    wordcloud = WordCloud(font_path=path,background_color="white", margin=5, width=1800, height=800, mask=alice_mask, max_words=2000,
                          max_font_size=60, random_state=42)
    worcloud = wordcloud.generate(text)
    wordcloud.to_file('pic3.jpg')
    plt.imshow(wordcloud)
    plt.axis('off')
    plt.show()

wordcloudplot()

下面,我们来见证奇迹

pic3.jpg

看到这结果。。。。我突然有种浪费了几小时什么的感觉。。。本来今天下了王者荣耀想要去玩的。。。我特么的犯贱跑去做这个。。。真无聊

相关文章

  • 我爬了咪蒙的278篇文章做词频统计

    最近想学做数据分析,可是干啃书实在太无聊,看着看着就走神了。所以干脆找点有意思的事情做。碰巧看到知乎上有人教怎么做...

  • 四张数据图理出咪蒙凉凉路线

    四张图看咪蒙凉了事件始末 1.30发布 寒门状元之死,使“咪蒙”词频上涨20000%以上 2.21咪蒙公众号账号注...

  • 可视化pyecharts库初体验

    爬取学校贴吧150个帖子,统计词频,简单数据分析 一、数据采集目标站点:百度贴吧 二、分词统计词频(jieba) ...

  • 咪蒙——NO ZUO NO Die

    说实话,如果不是这两天铺天盖地刷屏的左咪蒙、右咪蒙、上咪蒙、下咪蒙,咪蒙好、咪蒙坏、咪蒙时好实有坏、咪蒙怎么怎么了...

  • “对不起,我只是一个母亲!”

    江歌、刘鑫案这两天重新进入公众视野,咪蒙推出的一篇文章点燃了舆论。咪蒙的表达的确有煽动网络暴力的嫌疑,我认为咪蒙确...

  • 咪蒙,就真的“死”了么?

    最近消息爆炸,都是在说咪蒙的,因为一篇文章《一个出身寒门状元之死》,导致了咪蒙被关且不得转世。 咪蒙的事情炒的这么...

  • 怎样快速做出一个漂亮的词云?

    上周我写了一篇文章《有个神奇的网站,让你轻松在线做词频分析 - 简书》,分享了一个免费做词频分析的网站,做完词频分...

  • 咪蒙的爆款方法论:手把手教你如何写爆款文章

    从最开始的不喜欢咪蒙,到最近开始关注咪蒙做内容的方法,我个人对咪蒙的态度转变还挺大的。尤其是前段时间看到咪蒙的爆款...

  • 致咪蒙:说来惭愧,我的Boss月薪还没有5万

    没错,发这篇文章时,我屏蔽了Boss。 1 前几天,GQ实验室发了一篇关于咪蒙的报道--《咪蒙:网红,病人,潮水的...

  • 一姐咪蒙

    昨天,公众号一姐咪蒙,更新了一篇文章:《咪蒙:我为什么支持实习生休学?》(本文下方“阅读原文”可以看到)。大概意思...

网友评论

  • 寻找不同的蜜蜂:哈哈哈,切词太细,看不出规律:joy:
  • 云儿飘过:不得不说,咪蒙简直是我们女人的骄傲,让辣么多精英男作迷☺️
  • 不停歇的烟火:您最后的结果怎么让它有造型呢?就像小燕子的那个图片
    LEONYao:这个好像叫词云,已经有网站提供这个功能了,不用自己码代码
  • everfight:记得大学期间也做过类似的词频统计的事情,那个时候统计的是招聘的job description。做下来的结果稍微好一点。 我想可能的原因是:一个是目的比较专业的领域,另一个根据语义做了筛选。楼主可以想办法把结果清洗下,去除那些无意义的词,然后做统计估计结果会有意思些。

本文标题:我爬了咪蒙的278篇文章做词频统计

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