首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python 分析程序员最关心的竟不是技术,而是…

  • 24-03-05 00:01
  • 3751
  • 11726
blog.csdn.net

640?wx_fmt=gif

今天是2019年元旦,CSDN小姐姐们,祝大家新年快乐!

640?wx_fmt=jpeg

在过去的一年里,CSDN程序人生的职场、生活、行业热点、技术干货等几类文章,引起了很多开发者的共鸣。

这一年,程序人生收到了很多鼓励和认可的留言,也收到了很多建议和批评。新的一年,CSDN程序人生,愿和你一道,共同打造业内程序员第一内容阵地。

所以,今天的这篇文章,是特意写给你的。CSDN程序人生特约作者罗昭成,用Python爬取了程序人生一整年的文章,用数据来告诉你,这一年哪些文章最受欢迎,哪些文章曾激起了大家的思维涟漪,以及哪些词语,是今年文章中的高频词......

以下为正文:

从工业时代进入到信息服务时代,互联网行业逐渐兴起,传统行业逐渐没落。现如今,很多人混迹于互联网+的时代,人人都要学习编程已经逐渐被重视起来。

作为一个入行五年的老鸟,回首看看这五年的经历,恍若隔世。

从PC互联网时代到移动互联网时代的转变,也就是前几年的事情。IT界的快节奏已经成为常态。小步快跑 ,产品的快速的迭代,移动互联网有了飞速的发展。

现在,更加快捷方便的生活体验,都是由一群怀揣着“改变世界”的梦想的人,一群不辞辛劳的程序员实现的。

“程序员”在大众心里,有很多刻板印象的标签:死宅 、呆板、加班、智商很高情商却很感人,极客、一年四季的格子衫等,更有那句著名的“钱多话少死得早”。

这些刻板印象,对也不全对,它们只是程序员众多特性中的一个方面。

这样的一群人,他们对电脑的性能要求极高,对机械键盘非常热衷,对耳机追求到极致,除了我们常见的一些,他们还关心、喜欢的还有啥。

笔者将从CSDN程序人生 近几年的发文数据中,从数据的角度,来分析一下这群极客的人,脑子里面装的究竟都有些什么。


640?wx_fmt=png

数据获取


本次数据来源为CSDN程序人生公众号发文,第一步需要从获取公众号近几年的发文数据。公众号内容因发布在微信官方平台,所以只能通过微信,才能获取到对应的数据。

• 抓包

抓包是将网络传输发送与接收的数据包进行截获、重发、编辑等操作。在这里,我们需要使用我们自己的个人电脑,安装相应的抓包工具进行抓包(Mac推荐使用Charles,Windows推荐使用Fiddler)。

• HTTPS

HTTPS是安全为目标的HTTP通道,HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS的出现增加了抓包的难度,但并不是不可解的。

为了解决这个问题,抓包工具会作为一个中间代理人,手机端与抓包工具进行通信,抓包工具在与服务端进行通信。

手机端与抓包工具建立HTTPS请求使用的公钥是抓包工具下发给他的。所以,为了能正常通信,需要安装抓包工具生成的根证书并信任该证书。

从抓取到的数据包中,可以分析出公众号文章列表对应的请求接口,只需要分页发送所有数据请求,就可以拿到整个文章列表。

但点赞(好看)数与阅读数量就比较难获取。这两项数据只在微信客户端上有,经过分析(猜测),此请求是微信客户端触发并更新到页面中的,要获取到此数据,只能使用笨办法,让微信打开文章详情页面,发送请求,我们将请求返回的数据存储起来,在与文章标题进行关联,数据就可以使用了。

自动化才能解放双手,所以此处使用AnyProxy+ADB Shell 。

AnyProxy是一个基于Node.js的、可供插件配置的HTTP/HTTPS代理服务器。和上面提到的Charles 、 Fiddler类似,但更加适合开发者使用。

ADB是Android开发SDK中的一个工具,它可以使用屏幕点击、输入、滑动等功能,由此实现自动化点击屏幕。

启动AnyProxy,设置指定插件JS的路径,并运行ADB脚本,自动化打开页面,使得插件能够自动地将微信发送的请求中的Request与Response数据存储在数据库文件中,插件核心代码如下:

 
 

var url = require("url")
module.exports = {
   *beforeSendResponse(requestDetail, responseDetail)
  {
       try {
           var pathName = url.parse(requestDetail.url).pathname
           if(pathName == "/mp/getappmsgext") {
               saveReadCount(requestDetail, responseDetail)
          }
      } catch(err) {
           console.log("err")
      }
  }
};


640?wx_fmt=png

数据清洗与分析


经过一段时间的数据抓取,并且对数据进行了关联,本地一共获取到的数据有2630条,与动辄成千上万的电影评论数据相比,虽然量不是很多,但也足够我们从中分析出一些关键信息。

点赞是对网络上的某个内容(比如一条贴子、一篇文章或者一条微博等)表示赞同、喜爱。所以我们先来看一下程序人生公众号推文的点赞TOP10:

因为数据是存储在数据库中,所以只需要使用简单的SQL查询就可以拿到我们想要的数据,SQL代码如下:

select title as标题、author as作者、CAST(likeCount as int) as点赞数。from messages order by点赞数DESC limit 10。

执行上述SQL,拿到的结果如下:

640?wx_fmt=png

从上图可以看到,“长春长生‘’最受关注,点赞数量远高于其它文章,可以看出我们程序员小哥哥们,也是时实关注社会重大事件,忧国忧民。

当然,点赞只是其中的一个指标,不能表示全部。毕竟有好多程序员连赞都懒得点。

除了点赞数量,我们来看看阅读数量的排行,此处使用的是控制台打印输出的数据,为了更好地格式化结构,使用了PrettyTable, 代码如下:

 
 

def getArticInfos(min, max):
   conn = sqlite3.connect('wechat.db')
   conn.text_factory = str
   cursor = conn.cursor()
   cursor.execute("select title, author, datetime, CAST(readCount as int) as read, CAST(likeCount as int) as like from messages where datetime > '2018-01-01 00:00:00' order by read desc")
   values = cursor.fetchall()
   table = PrettyTable(["
Title", "Author", "Time", "Read Count", "Like Count"])
   table.align["
Title"] = "l" 
   table.align["
Author"] = "l" 
   table.padding_width = 1
   totalCount = 0
   for item in values:
       readCount = item[3]
       if  readCount >= min and readCount < max:
           table.add_row([str(item[0]), str(item[1]), str(item[2]), str(item[3]), str(item[4])])
           totalCount += 1
   print table
   print "
Total Count:" + str(totalCount)
   conn.close()

此处列出了从7W+到10W+的文章列表:

640?wx_fmt=png

从图中我们可以看到,张小龙微信第一版需求启发地的龙泉寺备受关注,程序员的负面新闻也是众多程序员关注的焦点。行业新闻及与他们相关的事情,更能够吸引他们的注意。

最后,我们再整体地来看一下,这些文章中,标题里面都会出现哪些高频的词语。特此,使用Jieba分词来进行分词,并使用Matplotlib生成词云图,如下:

640?wx_fmt=png

从图中,我们可以看到,“学习”可以说是相当高频的一个词语,当然,在各行各业,学习都是一个很重要的话题以及技能。

尤其是在 IT 行业,更新迭代更是异常迅捷,甚至快到前两天刚学的知识,过两天就过时了。

所以,众多的程序员都很关注自己的个人成长,学习自然必不可少。架构、框架、指南是一个吸引程序员比较好的词语。

最后最后,我想说的是,很想不通,作为一个程序员,你没有女朋友,你new一个对象不就完了吗?居然还要去相亲?

最最后,福利来啦!


640?wx_fmt=png

好酒留在末后


为了感谢广大陪伴CSDN程序人生一起前行的读者朋友们。本次CSDN程序人生联合博文视点,为大家送出5类总计10本的高评分科技图书。

在本文评论区留言点赞最高的前十名,即可获得一本科技图书(随机发货哦),开奖时间为1月2日下午17:00整,喜欢就赶快留言吧!

《疯狂Python》


640?wx_fmt=png从零开始,Python编程从入门到实践一网打尽。网络爬虫、大数据分析与展现、并发编程等一个不漏。

《Redis 深度历险:核心原理与应用实践》


640?wx_fmt=png

本书作者老钱在使用 Redis 上积累了丰富的实战经验,可以帮助更多后端开发者更快、更深入地掌握 Redis 技能,还能帮助读者更轻松地通过技术面试,进入心仪企业。

《Netty进阶之路:跟着案例学Netty》


640?wx_fmt=png

Netty将Java NIO接口封装,提供了全异步编程方式,是各大Java项目的网络应用开发必备神器。本书作者是国内Netty技术的先行者和布道者,本书是他继《Netty木又威指南》之后的又一力作。

《你也能看得懂的Python算法书》


640?wx_fmt=png本书面向算法初学者,首先介绍当下流行的编程语言Python,详细讲解Python语言中的变量和循序、分支、循环三大结构,以及列表和函数的使用,为之后学习算法打好基础。然后以通俗易懂的语言讲解双指针、哈希、深度优先、广度优先、回溯、贪心、动态规划和至短路径等经典算法。

《智能问答与深度学习》


640?wx_fmt=png本书由浅入深地介绍了人工智能在文本任务中的应用。不但介绍了自然语言处理、深度学习和机器阅读理解等基础知识,还简述了信息论、人工智能等的发展过程。

640?wx_fmt=png

640?wx_fmt=jpeg

640?wx_fmt=gif

 热 文 推 荐 

☞为什么 ofo 彻底凉了?

☞华为狼性文化遭质疑,那我们当个佛系程序员可好?

☞突发!12306 脱库 410 万用户数据究竟从何泄漏?

☞恒大贾跃亭和解;快播处罚细节曝光;天津三星工厂关闭 | 极客头条

☞等了20年的物联网,这次真的会成功吗?

☞实现通用人工智能还要多久?Hinton与AlphaGo之父这样回答

☞老程序员肺腑忠告:千万别一辈子靠技术生存!

☞2019年区块链最大悬念:谁将捡起以太坊掉落的王冠

 
 

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!";

640?wx_fmt=gif点击“阅读原文”,打开 CSDN App 阅读更贴心!


640?wx_fmt=png 喜欢就点击“好看”吧!
程序人生
微信公众号
笑谈开发轶事,品味程序人生。
注:本文转载自blog.csdn.net的CSDN 程序人生的文章"https://blog.csdn.net/csdnsevenn/article/details/85604487"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top