作者:刘晓明,互联网公司运维技术负责人,拥有10年的互联网开发和运维经验。一直致力于运维工具的开发和运维专家服务的推进,赋能开发,提高效能。 广告时间:最后给自己代个盐~~欢迎大家有空时翻下我牌子(知乎号:布道 ),看看“开发运维”专栏的文章,希望多些关注和点赞是给作者最好的鼓励 !

2017年转眼之间就过完,心挺累,人挺烦,想想都是为了钱。今天,我们以CSDN公众号为例,用Python看看2017年公众号运营都做了啥?

微信公众号的文章爬取有三种方式:

a. 通过微信订阅号在发布文章,可以查找公众号的文章,方式见微信链接。,阅读数、点赞数、评论数仍无法抓取。

b. 通过搜狗微信搜索微信公众号,但是文章篇幅仍然后有限制,点赞、阅读数、和评论数无法抓取。

c. 通过“中间人方式”对数据进行拦截,过滤解析后进行抓取。

本文就时利用第三种c方式对数据进行抓取。

思路:

1. 安装代理AnProxy,在手机端安装CA证书,启动代理,设置手机代理;

2. 获取目标微信公众号的__biz;

3. 进入微信公众号的历史页面;

4. 使用Monkeyrunner控制滑屏;获取更多的历史消息;

5. 记录文章标题,摘要,创建时间,创作类型,地址等等;

6. 文章列表获取完成后,利用Monkeyrunner进入文章的列表,

7. 记录文章的阅读数,点赞数,评论数等;

8. 重复以上操作。

数据爬取结果(数据截止:2017-12-26)

(备注:如需要数据源请 知乎 关注“布道”,私信向我索取。有公众号文章爬取需求的亦可联系我!)

数据分析

文章发布数量分析:

文章总数:914篇,每个月发布情况如下:

import pandas as pd
import matplotlib.pyplot as plt
name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']
df = pd.read_excel('weixin1.xlsx',encoding= 'utf-8',header=1,names=name,)
df['文章数'] = pd.to_datetime(df['日期']).dt.month
date = pd.DataFrame(df['文章数'].value_counts())
plt.figure(figsize=(15, 5))
plt.title('CSDN公众号文章发布情况')
plt.xlabel('月份')
plt.ylabel('文章数')
plt.xticks((1,2,3,4,5,6,7,8,9,10,11,12),('2017-01','2017-02','2017-03','2017-04','2017-05','2017-06','2017-07','2017-08','2017-09','2017-10','2017-11','2017-12'))
plt.plot(date.sort_index(),color='green',linestyle='dashed', marker='o', markerfacecolor='blue', markersize=8,)
plt.show()

通过发布文章次数的曲线来看,CSDN在4月份的才正式确定运营微信公众号,在11月份和12月份月发布次数已经超过100篇,每天6篇文章已经成为常态,小姐姐确实不容易啊,手动点赞!
创作类型分析:

import pandas as pd
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.pyplot as plt
name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']
df = pd.read_excel('weixin1.xlsx',encoding= 'utf-8',header=1,names=name,)
data = pd.DataFrame(df['创作类型'].value_counts())
explode=[0,0,0,0,0]
plt.figure(figsize=(15, 6))
plt.axes(aspect=1)
plt.title('文章创作情况',fontsize=18)
plt.pie(x=data,autopct='%.2f%%',explode=explode,shadow=True,labels=['原创','未标记作者','创作或转发','其它','未知'])
plt.show()

通过文章的创作情况来看,一半以上的文章都是原创。基本上每天至少有一篇原创的文章。

有这样的文采,确实是难得的人才。

阅读数分析:

import pandas as pd
import matplotlib.pyplot as plt
name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']
df = pd.read_excel('weixin.xlsx',encoding= 'utf-8',header=1,names=name,)
data = df[['阅读数']]
a = data.sort_values(by=['阅读数'],ascending=False)
one = a[a['阅读数']>=70000].size
two = a[(a['阅读数']>=30000) & (a['阅读数']<70000)].size
three = a[(a['阅读数']>=10000) & (a['阅读数']<30000)].size
four = a[(a['阅读数']>=1000) & (a['阅读数']<10000)].size
five = a[(a['阅读数']<1000)].size
explode=[0.3,0,0,0,0]
fras = [one,two,three,four,five]
plt.figure(figsize=(15, 5))
plt.axes(aspect=1)
plt.title('阅读数分布比例',fontsize=18)
plt.pie(x=fras,autopct='%.2f%%',explode=explode,shadow=True,labels=['大于70,000','30,000~70,000','10,000~30,000','1000~10,000','小于1,000'])
plt.show()

import pandas as pd
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.pyplot as plt
name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']
df = pd.read_excel('weixin1.xlsx',encoding= 'utf-8',header=1,names=name,)
df_read = df[['标题','阅读数']]
data_read = df.sort_values(by=['阅读数'],ascending=False)
data_read.index = data_read['标题']
var = data_read['阅读数'][:10]
plt.figure(figsize=(15, 6))
plt.title('阅读数 TOP10 的文章',fontsize=18)
plt.xlabel('数量',fontsize=18)
plt.ylabel('标题',fontsize=18)
var.plot(kind='barh', stacked=True,alpha=0.5, color=['red'])
plt.show()

由于阅读数超过10W,返回值为100001,具体数字是多少,前后台不得而知。整体文章质量比较高,不乏有10万+的文章出现。大V,对技术资讯的传播具有很大的影响力!

点赞数分析:

import pandas as pd
import matplotlib.pyplot as plt
name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']
df = pd.read_excel('weixin.xlsx',encoding= 'utf-8',header=1,names=name,)
data = df[['点赞数']]
a = data.sort_values(by=['点赞数'],ascending=False)
one = a[a['点赞数']>=200].size
two = a[(a['点赞数']>=50) & (a['点赞数']<200)].size
three = a[(a['点赞数']<50)].size
explode=[0.3,0,0]
fras = [one,two,three]
plt.figure(figsize=(15, 5))
plt.axes(aspect=1)
plt.title('点赞数分布比例',fontsize=18)
plt.pie(x=fras,autopct='%.2f%%',explode=explode,shadow=True,labels=['大于200','50~100','小于50'])
plt.show()

import pandas as pd
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.pyplot as plt
name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']
df = pd.read_excel('weixin1.xlsx',encoding= 'utf-8',header=1,names=name,)
df = df[['标题','点赞数']]
data = df.sort_values(by=['点赞数'],ascending=False)
data.index = data['标题']
var = data['点赞数'][:10]
plt.figure(figsize=(15, 6))
plt.title('点赞数 TOP10 的文章',fontsize=18)
plt.xlabel('数量',fontsize=18)
plt.ylabel('标题',fontsize=18)
var.plot(kind='barh', stacked=True,alpha=0.7, color=['green'])
plt.show()

“中兴跳楼程序员妻子:他们就这样把我老公逼死了”文章点赞数1542,“我们愤恨于现实,在互联网内外,公司调整牺牲员工利益的不公平不道德之事时有发生,尤其是在互联网公司,裁员更是屡见不鲜,尤以“为什么总说程序员是吃青春饭的?”为重。而到了个人身上,随着年岁增长,学习、精神等的下降,上有老下有小,面对突然的被辞退,压力可想而知,但是当事情发生之时,我们还是要尽可能地调整心态,网上评论的很多,这种基层主管处于不上不下的尴尬处境,只能考虑降低心理预期,哪怕是从头再来呢。生活固然残酷,但也不要轻易放弃,毕竟还有自己爱和爱自己的人啊!”,大家对此特别赞同!

评论数分析:

import pandas as pd
import matplotlib.pyplot as plt
name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']
df = pd.read_excel('weixin.xlsx',encoding= 'utf-8',header=1,names=name,)
data = df[['评论数']]
a = data.sort_values(by=['评论数'],ascending=False)
one = a[a['评论数']>=50].size
two = a[(a['评论数']>=20) & (a['评论数']<50)].size
three = a[(a['评论数']<20)].size
explode=[0.3,0,0]
fras = [one,two,three]
plt.figure(figsize=(15, 5))
plt.axes(aspect=1)
plt.title('评论数分布比例',fontsize=18)
plt.pie(x=fras,autopct='%.2f%%',explode=explode,shadow=True,labels=['大于50','20~50','小于20'])
plt.show()

import pandas as pd
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.pyplot as plt
name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']
df = pd.read_excel('weixin1.xlsx',encoding= 'utf-8',header=1,names=name,)
df = df[['标题','评论数']]
data = df.sort_values(by=['评论数'],ascending=False)
data.index = data['标题']
var = data['评论数'][:10]
plt.figure(figsize=(15, 5))
plt.title('评论数 TOP10 的文章',fontsize=18)
plt.xlabel('数量',fontsize=18)
plt.ylabel('标题',fontsize=18)
var.plot(kind='barh', stacked=True,alpha=0.7, color=['blue'])
plt.show()

“程序猿的一天就是这么糟心!留言有机会获《程序员》一年”抢福利,“程序员有什么错?凭什么杀我祭天”、“程序员的反思:不要一辈子靠技术生存”有争议的话题纷纷发表自己的看法。

2017年最受欢迎的10篇文章:

NO1:中兴跳楼程序员妻子:他们就这样把我老公逼死了。

摘要:愿逝者安息,生者坚强。

作者:苏宓&沭七 阅读数:100001

点赞数:154

评论数:99

NO2:程序员有什么错?凭什么杀我祭天。

摘要:近几年各大 App 的“更新日志”们挣脱了传统的枷锁,开始彻底放飞了自我!nn提起“更新日志”界的网红人物,第一位莫过于混迹各大公司的 Peter 先生!

作者:屠敏 阅读数:100001

点赞数:727

评论数:100

NO3:重大改革:Python 语言将被加入高考科目,VB 惨被淘汰!

摘要:近期,浙江省信息技术课程改革方案出台,Python 确定进入浙江省信息技术高考,从2018年起浙江省信息技术教材编程语言将会从 VB 更换为Python。

作者:无

阅读数:100001

点赞数:207

评论数:79

NO4:今天,美团程序员的年终奖金可能没了。

摘要:转眼间,一年时间余额已不足十二分之一,想想至少为了年终奖,此时也要撸起袖子加油干。然而,今天出现的一个大规模 Bug,很可能直接导致美团的程序员们错失了丰厚年终奖的机会。

作者:苏宓

阅读数:100001

点赞数:111

评论数:44

NO5:Wi-Fi 爆重大安全漏洞,Android、iOS、Windows 等所有无线设备都不安全了。

摘要:无论你在家还是在公众场合,无论你是 Android 还是 iPhone 手机,只要连接了 Wi-Fi ,都不再安全。

作者:苏宓

阅读数:81282

点赞数:98

评论数:38

NO6:15个句号导致微信 ANR,你中招了吗?附原理解析与解决方案。

摘要:15。。。。。。。。。。。。。。。导致安卓手机微信卡死,你中招了么?

作者:屠敏

阅读数:80123

点赞数:144

评论数:98

NO7: 为什么现在的监控系统容易硬盘坏?附原理解析。

摘要:分享一则技术贴。

作者:无

阅读数:70302

点赞数:157

评论数:41

NO8: 致永远离开我们的一位程序员。

摘要:为什么在代码之外的世界里,作为程序员的我们,会频遭维艰的窘境?nn致这位永远离开我们的开发者,愿天堂没有恶人相逼,愿你可做自己喜欢的事情。

作者:班布里

阅读数:67689

点赞数:108

评论数:92

NO9: 任正非致歉华为前程序员:回来吧,公司错了。

摘要:当年岁增长,究竟是在技术一线的道路上一直走下去?还是转而做管理人员?又该如何兼顾工作与家庭?

作者:唐小引

阅读数:65206

点赞数:199

评论数:94

NO10: 马云说,即使阿里巴巴死了,达摩院也要活着。

摘要:用马云的原话就是:阿里巴巴要走 102 年非常之艰难,达摩院必须要比阿里巴巴活的时间长。

作者:沭七

阅读数:59097

点赞数:191

评论数:74

虽然不知道在2017年增加多少粉,但是通过分析来看,公众号通过一年的运营已经成为技术类公众号的主流媒体。若我是老板,年终奖一定会给公众号运营同学包个大红包,2018年升职加薪!

Python爬取微信公众号历史文章进行数据分析,发现2017年运营总结,可以这样写!...相关推荐

  1. python爬取论文全文数据_Python爬取微信公众号历史文章进行数据分析

    思路: 1. 安装代理AnProxy,在手机端安装CA证书,启动代理,设置手机代理: 2. 获取目标微信公众号的__biz; 3. 进入微信公众号的历史页面: 4. 使用Monkeyrunner控制滑 ...

  2. python爬取公众号文章_python爬取微信公众号历史文章

    前几天,朋友有一个爬取某些指定微信公众号的历史文章的需求,刚好自己闲的没事,也就试了一试.不算完美解决问题了吧,但是自己也无能为力了,毕竟腾讯那么牛,斗不过斗不过. 一.思路 看了一些别人的文章,综合 ...

  3. 订阅号微信公众号历史文章爬虫php,2019.9月最新爬取微信公众号历史文章的办法...

    版权申明 原创文章:本博所有原创文章,欢迎转载,转载请注明出处,并联系本人取得授权. 版权邮箱地址:banquan@mrdwy.com 简介 我反复试了网上各种方法,都可能已经过时,或者无法使用,我这 ...

  4. python爬取微信公众号历史消息

    目的:使用python的requests模块爬取某微信公众号历史消息 工具:微信桌面版.Fiddler 首先选择目标公众号,通过以下方式进入公众号历史消息 该页面在chrome是打不开的,需要手动设置 ...

  5. python爬虫爬取微信_Python爬虫爬取微信公众号历史文章全部链接

    因为朋友问我能不能找一下一个微信公众号的全部历史文章的链接,我就帮他弄了一下,通过百度和谷歌发现现在大家爬微信公众号的思路基本都是下面两种: 通过搜狗搜索微信公众号然后拿到链接 通过fiddler检测 ...

  6. python公众号文章爬虫_Python爬虫爬取微信公众号历史文章全部链接

    因为朋友问我能不能找一下一个微信公众号的全部历史文章的链接,我就帮他弄了一下,通过百度和谷歌发现现在大家爬微信公众号的思路基本都是下面两种: 通过搜狗搜索微信公众号然后拿到链接 通过fiddler检测 ...

  7. python爬取公众号历史文章_Python爬虫爬取微信公众号历史文章全部链接

    因为朋友问我能不能找一下一个微信公众号的全部历史文章的链接,我就帮他弄了一下,通过百度和谷歌发现现在大家爬微信公众号的思路基本都是下面两种: 通过搜狗搜索微信公众号然后拿到链接 通过fiddler检测 ...

  8. html如何获取请求头变量的值。_如何使用 Python 爬取微信公众号文章

    我比较喜欢看公众号,有时遇到一个感兴趣的公众号时,都会感觉相逢恨晚,想一口气看完所有历史文章.但是微信的阅读体验挺不好的,看历史文章得一页页的往后翻,下一次再看时还得重复操作,很是麻烦. 于是便想着能 ...

  9. python 微信公众号发文章_如何使用 Python 爬取微信公众号文章

    我比较喜欢看公众号,有时遇到一个感兴趣的公众号时,都会感觉相逢恨晚,想一口气看完所有历史文章.但是微信的阅读体验挺不好的,看历史文章得一页页的往后翻,下一次再看时还得重复操作,很是麻烦. 于是便想着能 ...

最新文章

  1. Python+OpenCV 图像处理系列(2)—— 视频捕获、播放和保存
  2. Vue3 计算属性的特性
  3. vue-cli3.0配置详解
  4. vue打包后element-icon不显示问题解决
  5. lvs dr模式安装
  6. 【机器学习】XGBoost学习笔记
  7. roslyn分析字符串代码_.NET 5 源代码生成器——MediatR——CQRS
  8. android ringtonemanager raw,ringtone播放自定义的声音
  9. Linux Process VS Thread VS LWP
  10. 找不到合适的创业路该怎么办
  11. Android优美代码赏析:Snake游戏分析
  12. 华为hcia题库有哪些内容?华为HCIA认证考试多少分及格?
  13. vue学习之监听浏览器宽度
  14. c语言汇率兑换小程序,不懂算汇率?推荐你3个计算汇率的小程序,让你轻松算汇率...
  15. layui 调整表格样式
  16. 机房收费系统——配置DSN文件
  17. 两个网段计算机如何共享打印机,不同网段的打印机共享怎么连接?具体步骤
  18. 推荐9个能让你看一天的网站
  19. 王者荣耀在android目录下的名字,王者荣耀名字空白代码怎么弄_名字空白代码设置方法...
  20. 企业公众号做内容输出有哪些要点

热门文章

  1. 【结构型模式】《大话设计模式》——读后感 (9)牛市股票还会亏钱?——外观模式
  2. 培养用户的数字化习惯
  3. 荣耀YOYO建议新增快递取件服务
  4. phpcms 点赞_Ajax实现phpcms 点赞功能(图文教程)
  5. tyvj1172 自然数拆分Lunatic版
  6. 从32万字的歌词里找一首最伤感的歌,竟然是周杰伦的...
  7. SONY Xperia SP M35 解锁后重新上锁
  8. 计算机教师暑期到企业实践总结,国培教师企业实践总结
  9. 2019年电赛D题《简易电路特性测试仪》全过程
  10. 【时序】DeepGLO:可以学习全局依赖和局部信息的多时间序列预测模型