文章首发于公众号:程序员共成长

咪蒙,文学硕士,驾驭文字能力极强。并且是一个拥有一千多万粉丝,每篇文章阅读量都100W+,头条发个软文都能赚80万,永远都能抓住粉丝G点的那个女人。

1月份因为某篇文章,在网络上被一大批网友炮轰。我也因此关注了她。一开始发现她的文章非常接地气,基本都是和生活紧密相连,但看的多了,发现经常在文中非常平滑的挑起某种关系之间的矛盾。很大一部分文章都是围绕女性展开话题。而且每天更新时间都在晚上十一点左右,几乎从来不间断。包括春节。

2015年9月15日,公众号第一篇文章《女友对你作?你应该谢天谢地,因为她爱你》,直男癌表示理解不来这话什么意思。 昨天公众号注销,又一次成为热点话题。历史文章也都不能看了,好在今天一个小伙伴分享了咪蒙所有文章的压缩包。

因为是直接从文件中读取数据,相比于从公众号中抓取文章要方便很多。最吸引我的说实话就是标题,读者都是被标题吸引了才去选择是否读你的文章。咪蒙这一点真的厉害。

总共1013篇文章,直接读取文件夹中的所有文件就好,

import os
import re
files = os.listdir(r"E:\BaiduNetdiskDownload\咪蒙\咪蒙全部文章PDF")
for i in files:# 通过正则匹配标题中的日期mat = re.search(r"(\d{4}_\d{1,2}_\d{1,2} )", i)re_str = mat.groups()[0]# 替换日期和文件后缀名file_name = i.replace(re_str,'').replace('.pdf','')# 去掉图片标题if file_name == "分享图片":continueprint(file_name)


更直观的去看标题,可以通过WorldCloud生成词云图。这里文章太多,生成所有标题的词云可能看不太清,所以只生成了近期部分标题。

import numpy as np
from PIL import Image
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt# 读取所有文件的标题,存在txt文本中
with open('标题.txt', 'r', encoding='utf-8') as f:word = (f.read())f.close()# 图片模板和字体
image = np.array(Image.open('背景图片.jpg'))
# 指定字体,否则汉字不显示
font_path='yahei.ttf'# 结巴分词
wordlist_after_jieba = jieba.cut(word)
# 分词结果
wl_space_split = " ".join(wordlist_after_jieba)
# 关键一步
my_wordcloud = WordCloud(scale=4, font_path=font_path,mask=image, background_color='white',max_words=1000, max_font_size=55, random_state=24).generate(wl_space_split)
# 显示生成的词云
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()
# 保存生成的图片
my_wordcloud.to_file('result.jpg')

毕竟小编主要还是java开发,Pyton实在是有点渣,为了美观用在线工具生成了词云,就假装是我生成的吧

从上图中看出来,真的是在标题上煞废了苦心。标题只是让用户打开,只有内容才能真正的留住用户。那究竟什么内容这么吸引人呢?

因为拿到的文件格式是PDF文件,因此可以通过Python的pdfminer3k库进行操作。

安装库

pip3 install pdfminer3k

代码如下

import sys
import importlib
import os
importlib.reload(sys)from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal, LAParams
from pdfminer.pdfinterp import PDFTextExtractionNotAlloweddef readPDF(path, toPath):# 以二进制的形式打开PDF文件with open(path, "rb") as f:# 创建一个PDF解析器parser = PDFParser(f)# 创建PDF文档pdfFile = PDFDocument()# 文档放入解析器中parser.set_document(pdfFile)pdfFile.set_parser(parser)# 初始化密码pdfFile.initialize()# 检测文档是否可以转换成txtif not pdfFile.is_extractable:raise PDFTextExtractionNotAllowedelse:# 解析数据# 数据管理manager = PDFResourceManager()# 创建一个PDF设备对象laparams = LAParams()device = PDFPageAggregator(manager, laparams=laparams)# 解释器对象interpreter = PDFPageInterpreter(manager, device)# 开始循环处理,每次处理一页for page in pdfFile.get_pages():interpreter.process_page(page)layout = device.get_result()for x in layout:if(isinstance(x, LTTextBoxHorizontal)):with open(toPath, "a") as f:str = x.get_text()# print(str)f.write(str.encode("gbk", 'ignore').decode("gbk", "ignore")+"\n")
path = r"E:\BaiduNetdiskDownload\咪蒙\咪蒙全部文章PDF"# 获取文件下所有PDF文件数组
files = os.listdir(r"E:\BaiduNetdiskDownload\咪蒙\咪蒙全部文章PDF")
for i in files:# 拼接文件路径content_url = path + '/' + ireadPDF(content_url, 'content.txt')print(f"{content_url} 读取完成")

全部文章大概300多万字左右,这里推荐使用多线程去操作。然后进行数据清洗,因为资料包里有些不相关的推广信息,以及文章的编辑、排版、配图人员的署名、日期等信息。

然后通过分词计算出热点关键词出现的次数。

import jieba
import csvarticle = open('content.txt','r').read()
words = list(jieba.cut(article))
articleDict = {}
for w in set(words):if len(w)>1:articleDict[w] = words.count(w)
articlelist = sorted(articleDict.items(),key = lambda x:x[1], reverse = True)#打开文件,追加a
out = open('mm_csv.csv','a', newline='')
#设定写入模式
csv_write = csv.writer(out,dialect='excel')
for i in range(10):# 关键词word = articlelist[i][0]# 出现次数num = articlelist[i][1]arr = [word, num]csv_write.writerow(arr)
print('已保存为csv文件.')


发现出现了很多社交关系中的称呼词。为了更直观的展示,可以通过pyecharts进行柱状图显示。

文章中大部分从孩子、父母、男生、女生、闺蜜等话题展开。另外之所以朋友这个词出现在前面,因为很多文章都是讲述"朋友"的故事。

之前看过一篇文章,分析了咪蒙的微博(现已关闭),粉丝将近200W,其中女性粉丝占据了85%。年龄段在23-28岁之间,这个年龄段的女生对理想中的生活比较向往,而咪蒙的文章就是说出了他们的心声,文中狂喷渣男,直男。作为理工男加程序员我的内心是这样子的。

最后根据高频词生成了一个词云图,背景图片用的是咪蒙的头像。

写在最后

翻了几篇文章发现配图非常的小清新,可能就是用来掩盖鸡汤的毒吧。《寒门状元之死》在网上扒出了许多槽点,为了人气不惜歪曲事实,虚构场景。而且很多文章中出现频繁出现不雅词语。

引用网上的一句话

一部分人讨厌咪蒙,

是因为无法忍受文明世界里一个满口脏话的公知,

是因为我们受够了她不良的蛊惑,

是因为我们相信我们关注的公众号应该有底线和正确的三观,

是因为我们还是一群有良知有思考的年轻人。

比起这种大起大落,我更愿意体会那些渺小的成就感。

比如,程序启动一切正常,说服产品不改需求了,发现BUG就知道哪里出了问题。

再比如,看完这篇文章的你能点个赞,点个关注。


史上最全Python资料汇总(长期更新)。隔壁小孩都馋哭了 — 点击领取

分析咪蒙1013篇文章,300多万字,她凭什么会火?相关推荐

  1. 下血本买的!Flutter中网络图片加载和缓存源码分析,看看这篇文章吧!

    目录 想要成为一名优秀的Android开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样. PagerAdapter 介绍 ViwePager 缓存策略 ViewPager 布局处 ...

  2. python读mat文件_我用Python对咪蒙的1013篇历史文章做了一次深度的数据分析...

    ▲ 来源丨 程序员共成长 前两天,公众号咪蒙注销成为热点话题.历史文章都不能看了,好在今天一个小伙伴分享了咪蒙所有文章的压缩包. 因为是直接从文件中读取数据,相比于从公众号中抓取文章要方便很多.最吸引 ...

  3. 这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析

    前言 package com.jvm.classloader;class Father2{public static String strFather="HelloJVM_Father&qu ...

  4. 老板又给我转咪蒙的文章,怎么办 ?

    更新:3月21日晚上8点,我将和北大纵横合伙人@朱宁 就他如何将职场危机变转机的过程(详情参见40岁财务自由?你明明距离40岁失业更近 - 瞎说职场 - 知乎专栏)做一次知乎Live.欢迎大家来听. ...

  5. Python 爬取 6000 篇文章分析 CSDN 是如何进入微信 500 强的

    CSDN 小姐姐们恭祝所有朋友新年快乐! 作者 | 罗昭成,设计 | 张藐,责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 亲爱的小伙伴们,马上就到 2019 年了,你的 2018 年 ...

  6. 全网分析HTTP协议最全的一篇文章,程序员赶紧收藏

    本篇文章篇幅比较长,先来个思维导图预览一下. 一张图带你看完本篇文章 一.概述 1.计算机网络体系结构分层 计算机网络体系结构分层 2.TCP/IP 通信传输流 利用 TCP/IP 协议族进行网络通信 ...

  7. 容器网络连接被重置?这篇文章教你如何去定位及分析

    前段时间公司的安卓打包服务出现问题,现象是在上传 360 服务器进行加固的时候,非常大概率会卡在上传阶段,长时间重试最后失败.我对这个情况进行了一些排查分析,解决了这个问题,写了这篇长文复盘了排查的经 ...

  8. php 插件化开发模式,JavaScript_JavaScript插件化开发教程(六),一,开篇分析 今天这篇文章 - phpStudy...

    JavaScript插件化开发教程(六) 一,开篇分析 今天这篇文章我们说点什么那?嘿嘿嘿.我们接着上篇文章对不足的地方进行重构,以深入浅出的方式来逐步分析,让大家有一个循序渐进提高的过程.废话少说, ...

  9. 读了这篇文章,你将变身web分析大师

    tml lang="zh-cn"> 读了这篇文章,你将变身web分析大师 - 腾讯云 社区 - 博客园 type="text/css" rel=" ...

  10. 这或许是东半球分析十大排序算法最好的一篇文章

    作者 | 不该相遇在秋天 转载自五分钟学算法(ID:CXYxiaowu) 前言 本文全长 14237 字,配有 70 张图片和动画,和你一起一步步看懂排序算法的运行过程. 预计阅读时间 47 分钟,强 ...

最新文章

  1. 综述 | 图像去噪方法比较
  2. matlab 与dsp联合仿真,matlab和DSP联合开发前景很大?
  3. 论ORM之EFCore初篇(快速基于本地数据库实现数据操作)
  4. 大家狂欢吧,我的Google帐号悲剧了
  5. 22个国外电子商务系统
  6. 正数(十进制)变二进制 除以2取余 小数(十进制)变二进制 乘以2取整数
  7. 一只青蛙跳向三个台阶_青蛙跳台阶问题的三种解法
  8. R语言与优化模型(一):规划问题和运输问题
  9. SSL基础:21:使用ca子命令为其他证书签名
  10. 图像处理项目-车标识别
  11. 计算机基础知识题库选择题,计算机基础知识题库选择题
  12. PDF文件打印受到限制?
  13. facebook piexl 像素追踪
  14. 设计师的色彩理论,你知道不同色彩的秘密吗?
  15. SQL语句中对时间字段进行区间查询
  16. 【数据结构(C语言版)严蔚敏 第一章 绪论】
  17. perl下载与环境安装
  18. canvas学习(html5)画画
  19. 写字楼如何实现无线wifi短信验证登录?
  20. 实现网站的高并发访问

热门文章

  1. 【马克思主义基本原理】--第二章--实践与认识及其发展规律
  2. 启动Hadoop集群,出现Cannot set priority of nodemanager(resourcemanager) process xxx问题
  3. 【eos系列】智能合约 私链激活 基本操作
  4. 漫威电影宇宙观影指南,口碑票房最佳都是谁
  5. 贪心算法的数学证明 (更新中)
  6. JAVA面试技巧之自我介绍
  7. 机器学习之监督学习-分类模型K近邻(KNN)算法实现
  8. Butterworth滤波
  9. arduino——ATtiny85 SSD1306 + DHT
  10. 第三方app实现微信登录功能