瞎扯淡 Ruby China 节点的主题数统计

skandhas · 2012年05月21日 · 最后由 chenge 回复于 2016年07月04日 · 5257 次阅读

统计了一下 Ruby China 节点的主题数 (2012-05-21)。

瞎扯淡 节点的主题个数高居第 2 名:493 Rails 节点:760 Ruby 节点:337

瞎扯淡 是不是也太高了点?O_o (本帖也为 瞎扯淡 贡献了一票,但没计入在内)


会成为第一名的

你是怎么统计的?抓节点的统计数字?

#2 楼 @huacnlee 刚开始是用手工,觉得很傻 O_o 然后写了个脚本用 Watir 来做 (用 Nokogiri 也可以 )


先统计 node1 至 node49,然后按主题数排序,取出前 30 名的热门节点。 测试环境:Ruby 1.9.2p0, WinXP.


#encoding:utf-8
require "watir-webdriver"

def ruby_china_nodes_info
  @browser = Watir::Browser.new
  (1..49).inject([]) { |total,i| total << fetch_node_info(i)}
                    .sort_by{|_,topics| -topics }
                    .slice(0...30)
                    .tap { @browser.close } 
end

def fetch_node_info(node_index)
  @browser.goto "http://ruby-china.org/topics/node#{node_index}"
  div = @browser.div(:id => 'node_info')
  [
    div.h2.text,
    div.span(:class =>'total').text =~/(\d+)/ ? ($1.to_i):0 
  ]
rescue
  ["Unkown node#{node_index}",0]   
end


if __FILE__ == $0

  # for win32 console
  STDOUT.set_encoding "gbk"

  nodes_info = ruby_china_nodes_info  
  nodes_info.each {|node,topics|  puts "#{node}:#{topics}" }

end

最近一次统计

Rails:763 瞎扯淡:494 Ruby:337 分享:312 Gem:235 反馈:128 部署:123 工具控:109 社区开发:97 招聘:93 其他:54 公告:48 JavaScript:45 云服务:42 Ruby Tuesday:36 MongoDB:34 Testing:33 Git:31 开源项目:31 Linux:28 RVM:25 Mac:23 书籍:21 Database:19 产品控:17 CSS:15 Nginx:13 算法:12 Redis:10 搜索分词:9

果然是这样的,哈哈哈,那个 count 数字有一些出入的

多大点事,用 api 直接搞

JSON.parse(open("http://ruby-china.org/api/nodes.json").read).collect{|node|[node["name"], node["topics_count"]]}.sort_by{|t| t.last}

结果:

[["插画", 0], ["Erlang", 1], ["Android", 2], ["Go", 3], ["Python", 4], ["gzruby", 4], ["Objective-C", 4], ["Mailer", 5], ["Sinatra", 6], ["重构", 8], ["iPhone", 8], ["搜索分词", 9], ["Redis", 10], ["算法", 12], ["Nginx", 13], ["CSS", 15], ["产品控", 17], ["Database", 19], ["书籍", 21], ["Mac", 23], ["RVM", 25], ["Linux", 28], ["Git", 31], ["开源项目", 31], ["Testing", 33], ["MongoDB", 34], ["Ruby Tuesday", 36], ["云服务", 43], ["JavaScript", 45], ["公告", 48], ["其他", 54], ["招聘", 93], ["社区开发", 97], ["工具控", 109], ["部署", 123], ["反馈", 128], ["Gem", 235], ["分享", 312], ["Ruby", 338], ["瞎扯淡", 494], ["Rails", 763]] 

本帖说明,瞎扯淡也可以有技术含量的...

curl + Ruby

curl http://ruby-china.org/api/nodes.json | ruby -rjson -e "p JSON(ARGF.read).map{|node|node.values_at('name','topics_count')}.sort_by(&:last)"

#5 楼 @qichunren 以前没查过 Ruby China 的 API, http://ruby-china.org/wiki/api 有了 API,那自然就省事多了  :) Thx!

#7 楼 @hooopo 是啊~ 有 API 果然方便,我要是早查一查,也不用走弯路了:( 多谢分享!

兄弟们,写东西之前,一定先查 API 阿!O_o

API 给力啊

大家帮忙把 API 完善呗

@qichunren 学习了哈 这种方式确实更方便

1.9.3p194 :006 > require "json"
 => false 
1.9.3p194 :007 > require "open-uri"
 => true 
1.9.3p194 :008 > JSON.parse(open("http://ruby-china.org/api/nodes.json").read).collect{|node|[node["name"], node["topics_count"]]}.sort_by{|t| t.last}
 => [["RubyConfChina", 0], ["插画", 0], ["Erlang", 1], ["Android", 2], ["Go", 3], ["GZRuby", 4], ["Objective-C", 4], ["Python", 4], ["Mailer", 5], ["Sinatra", 6], ["重构", 8], ["搜索分词", 9], ["Redis", 10], ["iPhone", 10], ["算法", 12], ["Nginx", 13], ["CSS", 15], ["产品控", 17], ["Database", 19], ["书籍", 21], ["Mac", 23], ["RVM", 25], ["Linux", 28], ["开源项目", 33], ["Testing", 33], ["Git", 33], ["MongoDB", 35], ["Ruby Tuesday", 37], ["云服务", 44], ["JavaScript", 45], ["公告", 48], ["其他", 54], ["招聘", 96], ["社区开发", 98], ["工具控", 111], ["部署", 123], ["反馈", 129], ["Gem", 239], ["分享", 315], ["Ruby", 343], ["瞎扯淡", 495], ["Rails", 775]] 

瞎扯淡也需要这么高的技术水准!!!这年头,扯淡都扯不起了......

原来还有插画节点?

#4 楼 @huacnlee 请问一下,count 数字有些出入是什么意思?纯好奇

#15 楼 @5ive 删除的。没减掉,问题不大就没处理。

chenge Ruby 学习汇集,请推荐内容 提及了此话题。 07月04日 11:35
需要 登录 后方可回复, 如果你还没有账号请 注册新账号