点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!

【CSDN 编者按】今天是 2017 年最后一天,在此向所有程序员朋友们道一声「新年快乐」,在过去一年里,发生了很多事,一边是新技术的不断迭代,一边是国内外各大厂的放大招,还有的,就是程序员群体所遭遇的重大事件。在这一年,CSDN 发布了 905 篇文章,与所有程序员朋友们一起见证了许多事,也相伴着走过了学习、工作的路程,在本文中,我们的一位好朋友 —— 某知名互联网公司运维技术负责人刘晓明(ID:布道)用 Python 爬虫了 CSDN 过去一年的历史文章数据并进行了分析与总结,在此与诸君分享。

CSDN 小姐姐祝所有程序员朋友新年快乐!

以下为正文:

2017 年转眼之间就过完,心挺累,人挺烦,想想都是为了钱。今天,我们用 Python 看看 2017 年小姐姐对 CSDN 微信公众号都做了啥?微信公众号的文章爬取有三种方式:

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

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

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

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

思路

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

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

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

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

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

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

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

8. 重复以上操作。

数据爬取结果

数据分析

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

import pandas as pdimport matplotlib.pyplot as pltname=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']df = pd.read_excel('weixin.xlsx',encoding= 'utf-8',header=1,names=name,)df = pd.read_excel('weixin.xlsx',encoding= 'utf-8',header=1,names=name,)df['文章数'] = pd.to_datetime(df['日期']).dt.monthdate = 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 公众号发布情况

通过发布文章次数的曲线来看,CSDN 在今年下半年才正式着重运营微信公众号,在 11 月份和 12 月份月发布次数已经超过 100 篇,每天 6 篇文章已经成为常态,小姐姐确实不容易啊,手动点赞!

创作类型分析

import pandas as pdimport matplotlib.pyplot as pltimport pandas as pdimport matplotlib.pyplot as pltname=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']df = pd.read_excel('weixin.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 pdimport matplotlib.pyplot as pltname=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']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].sizetwo = a[(a['阅读数']>=30000) & (a['阅读数']<70000)].sizethree = a[(a['阅读数']>=10000) & (a['阅读数']<30000)].sizefour = a[(a['阅读数']>=1000) & (a['阅读数']<10000)].sizefive = a[(a['阅读数']<1000)].sizeexplode=[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 pdimport matplotlib.pyplot as pltimport pandas as pdimport matplotlib.pyplot as pltname=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']df = pd.read_excel('weixin.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()

阅读数 TOP10 的文章

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

点赞数分析

import pandas as pdimport matplotlib.pyplot as pltname=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']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].sizetwo = a[(a['点赞数']>=50) & (a['点赞数']<200)].sizethree = a[(a['点赞数']<50)].sizeexplode=[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 pdimport matplotlib.pyplot as pltimport pandas as pdimport matplotlib.pyplot as pltname=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']df = pd.read_excel('weixin.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()

点赞数 TOP10 的文章

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

摘要:分享一则技术贴。

作者:无

阅读数:70302

点赞数:157

评论数:41

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

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

作者:班布里

阅读数:67689

点赞数:108

评论数:92

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

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

作者:唐小引

阅读数:65206

点赞数:199

评论数:94

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

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

作者:沭七

阅读数:59097

点赞数:191

评论数:74

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

最后,朋友们如果有想说的话,或者想要源码或数据源学习,请留言,技术之路,感谢有你们[手动比心]。更欢迎你们加入 CSDN 作者大家庭,一起为天下程序员传播更具价值的优质内容,请微信联系:donyintxy 投稿(备注:姓名+投稿)。

作者简介:刘晓明,某知名互联网公司运维技术负责人,拥有 10 年的互联网开发和运维经验。一直致力于运维工具的开发和运维专家服务的推进,赋能开发,提高效能。有专栏名曰「开发运维」,欢迎关注:https://zhuanlan.zhihu.com/idevops。

————— 推荐阅读 —————

用 Python 分析 CSDN 小姐姐一年都做了啥相关推荐

  1. 情人节,我表白了CSDN小姐姐后,竟然...【为表白写了一个绘图工具,让我不再手残】

    情人节,我表白了CSDN小姐姐后,竟然-竟然有人看了这篇文. 以下图片素材由一个还没写完的工具绘制,稍后会放在CSDN的代码仓库(现在能用了,还没时间改,颜色填充算法还没写,有能力的朋友可以修改一下) ...

  2. python多线程下载小姐姐图片

    python多线程下载小姐姐图片 闲谈 思路 实现过程 单线程实现代码功能 问题描述 多线程处理办法 完成效果 闲谈 今日闲来无事,翻看博客,看到一篇关于python自动下载图片的文章,就萌生了也写一 ...

  3. Python爬取小姐姐图片

    使用Python爬取小姐姐图片 首先上网站链接 唯美女生 爬取图片主要分为一下几步: 1.打开一个你喜欢的小姐姐的网站 E.g xiaojiejie web 2.下载并安装python环境 pytho ...

  4. Python爬取小姐姐美照

    大家好  我是阿喵 今天教大家用如何用爬虫爬取可爱小姐姐的美照 第一步:现将python环境搭建好,工欲利其事必先利其器! 第二步:寻找目标网站,我选择的网站是http://www.win4000.c ...

  5. 昨晚,我用python帮隔壁小姐姐P证件照 自拍,然后发现。。。

    大家好,我是Lex 喜欢欺负超人那个Lex 建议大家收藏哦,以后帮小姐姐P自拍.证件照.调尺寸.背景.抠图,直接10行代码搞定,瞬间高大上. 事情是这样的 晚上,正在聚精会神写代码 突然,收到隔壁小姐 ...

  6. 福利,小姐姐直播跳舞怎么就跑我电脑来了!!Python一网打尽虎牙小姐姐的直播信号源!!快上车!

    相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 对了大家可以关注小编的公众号哟~~ Python日志 大家好,我大胆又来了! 天天给大家分享小游戏啥的,肯定小伙伴都觉得有点无聊,今天给 ...

  7. python drop函数_用python帮财务小姐姐自动生成财务报表

    ↑↑↑关注后"星标"简说Python 人人都可以简单入门Python.爬虫.数据分析简说Python严选 来源:python数据分析之禅   作者:小dull鸟 One old w ...

  8. 宅男福利!我50行Python代码让小姐姐给你读Pdf

    最近小编忙着给项目做文档,需要阅读大量的文献资料,长时间的阅读让本就不喜欢看书的我是又困又乏,所以想着,要是能有小姐姐在旁边读给我听该有多好. 说干就干,小编整理了一下思路,晚上熬夜花了几个小时就完成 ...

  9. Python批量下载小姐姐视频,总有你喜欢的,你一般在哪个平台看?

    兄弟们学Python如果不是为了爬小姐姐,那将毫无意义! 而且爬图片有什么意思,咱们要爬就爬视频,话不多说,开整! 1.动态数据抓包演示 2.json数据解析方法 3.视频数据保存 这是今天的大概方法 ...

最新文章

  1. 数据库授予用户增删改查的权限的语句_mysql创建本地用户及赋予数据库权限的方法示例...
  2. 使用CocoaPods出现 The `master` repo requires CocoaPods 0.32.1 - 问题解决
  3. Mr.J-- jQuery学习笔记(二十四)--剖析jQuery源码--extend
  4. F - Prime Path
  5. 一个高性能的key/value存储服务器 - Tarantool/Box
  6. shiro(SpringBoot+SpringMVC+Mybatis+Shrio):丰富的登录模块附有GIF动图,博主可免费答疑
  7. vulnstack4渗透-内网篇
  8. Bandizip下载安装教程
  9. 入门学习计算机第十三天—初识指针
  10. 车辆动力学知识总结(二):运动学模型
  11. 共模干扰和差模干扰的理解
  12. 视频相关十大开源项目
  13. 程序中图片透明 函数
  14. 对于Android虚拟机启动失败“The emulator process for AVD Nexus_5X_API_30 was killed”的解决方案
  15. 普通家用电风扇电机绕组
  16. 项目名前有个红色感叹号的解决办法
  17. c语言实验选择结构程序设计
  18. NFC手机手环脱机模拟加密门禁卡
  19. 显示“打不开“XXX”,因为它来着身份不明的开发者【打开任何来源】
  20. 详细对比DRAM、Flash和DDR技术

热门文章

  1. 中国数码摄像机市场趋势报告、技术动态创新及市场预测
  2. 2021-2025年中国制药废物处理与管理行业市场供需与战略研究报告
  3. 2021-2025年中国伊帕斯行业市场供需与战略研究报告
  4. 几组图片轮回html,HTML 5 Canvas
  5. java获取泛型的类型_Java反射获取泛型类型
  6. 吐槽 Twitter 后,马斯克用 30 亿美元入股 Twitter,成为最大股东
  7. OPPO 40万年薪招应届生,狂揽芯片人才;恶意差评小米新手机,一用户被判赔3万元;谷歌开源全同态加密通用转译器|极客头条...
  8. PyTorch 1.8 发布,支持 AMD,优化大规模训练
  9. 阿里云迎来 2.0,重新定义软件系统应用开发方式
  10. 不要再被Python洗脑了,来看看这个吧......