Skip to content

Instantly share code, notes, and snippets.

@shuhei
Last active August 29, 2015 14:05
Show Gist options
  • Save shuhei/e3d1d194aa8a8bef126a to your computer and use it in GitHub Desktop.
Save shuhei/e3d1d194aa8a8bef126a to your computer and use it in GitHub Desktop.
Qiita Organization Ranking
require 'mechanize'
require 'date'
def nap
sleep(3 + rand(10) / 10)
end
def org_list_item(org, i)
"#{i + 1}. [#{org[:name]}](#{org[:link]}): #{org[:posts]} posts, #{org[:stocks]} stocks"
end
def get_with_retry(agent, link)
retry_count = 0
while retry_count < 5
begin
return agent.get(link)
rescue
retry_count += 1
nap
end
end
fail "Failed to fetch #{link}"
end
agent = Mechanize.new do |ag|
ag.user_agent_alias = 'Mac Safari'
end
index_page = agent.get('http://qiita.com/organizations')
link_elements = index_page.search('.organization-list h2 a')
org_links = link_elements.map { |el| "http://qiita.com#{el['href']}" }
orgs = org_links.map do |link|
nap
puts "Getting #{link}"
page = get_with_retry(agent, link)
name = page.search('.organization-header h1')[0].text
posts, stocks = page.search('.organization-stats .count')
.map(&:text)
.map(&:to_i)
{ name: name, posts: posts, stocks: stocks, link: link }
end
ranking = orgs.sort_by { |org| -org[:stocks] }
puts "#{ranking.size} organizations"
puts ranking[0...10]
markdown = ranking.map.with_index(&method(:org_list_item)).join("\n")
open('ranking.md', 'w') do |f|
f.puts '# Qiita Organization Ranking'
f.puts
f.puts "Created on #{Date.today}"
f.puts
f.puts markdown
end
puts 'Done'

Qiita Organization Ranking

Created on 2014-08-20

  1. 株式会社ミクシィ: 241 posts, 16645 stocks
  2. Increments株式会社: 401 posts, 16210 stocks
  3. Wantedly, Inc.: 183 posts, 9345 stocks
  4. ピクシブ株式会社: 220 posts, 6335 stocks
  5. 株式会社ソニックガーデン: 116 posts, 5848 stocks
  6. 株式会社サイバーエージェント: 201 posts, 4253 stocks
  7. 面白法人カヤック HTMLファイ部: 322 posts, 4159 stocks
  8. 株式会社ACCESS: 223 posts, 3529 stocks
  9. 株式会社トップゲート: 44 posts, 3316 stocks
  10. リコーITソリューションズ株式会社: 320 posts, 3108 stocks
  11. 株式会社ゆめみ: 242 posts, 3101 stocks
  12. 株式会社ワンパク: 190 posts, 2951 stocks
  13. freee: 156 posts, 2754 stocks
  14. COOKPAD: 101 posts, 2555 stocks
  15. 株式会社grooves: 31 posts, 2321 stocks
  16. 株式会社Abby: 14 posts, 2289 stocks
  17. エムスリー株式会社: 231 posts, 2112 stocks
  18. 株式会社DTS: 173 posts, 1896 stocks
  19. 株式会社 時雨堂: 83 posts, 1623 stocks
  20. 株式会社 ドワンゴ: 148 posts, 1590 stocks
  21. 株式会社ピクセルグリッド: 50 posts, 1417 stocks
  22. アイレット株式会社(cloudpack): 178 posts, 1404 stocks
  23. グリー株式会社: 126 posts, 1401 stocks
  24. 株式会社アトラエ: 115 posts, 1341 stocks
  25. 株式会社インフィニットループ: 61 posts, 1308 stocks
  26. バスキュール: 82 posts, 1301 stocks
  27. 株式会社シロク: 39 posts, 1300 stocks
  28. 株式会社BFT: 105 posts, 1245 stocks
  29. スタンドファーム株式会社: 84 posts, 1054 stocks
  30. 株式会社ベーシック: 132 posts, 1044 stocks
  31. FrogApps, Inc.: 25 posts, 1024 stocks
  32. 株式会社オーガランド: 100 posts, 1011 stocks
  33. アライドアーキテクツ株式会社: 116 posts, 1003 stocks
  34. 株式会社アイ・エム・ジェイ TSUKURITE: 139 posts, 895 stocks
  35. 株式会社オープンストリーム: 56 posts, 873 stocks
  36. 株式会社Ednity: 68 posts, 865 stocks
  37. 株式会社ネクスト: 46 posts, 852 stocks
  38. Fringe81株式会社: 90 posts, 845 stocks
  39. 株式会社Diverse: 46 posts, 839 stocks
  40. 株式会社Fablic: 34 posts, 806 stocks
  41. 株式会社LOUPE: 79 posts, 771 stocks
  42. 株式会社コムニコ: 16 posts, 750 stocks
  43. Lemonade Lab, Inc.: 71 posts, 646 stocks
  44. 株式会社nanapi: 56 posts, 561 stocks
  45. 株式会社ネットプライス: 72 posts, 478 stocks
  46. 株式会社フィードフォース: 51 posts, 462 stocks
  47. 株式会社Aiming: 62 posts, 430 stocks
  48. Retty株式会社: 77 posts, 412 stocks
  49. 株式会社カルテットコミュニケーションズ: 29 posts, 362 stocks
  50. Studio Ousia: 40 posts, 338 stocks
  51. Beatrobo Inc.: 26 posts, 307 stocks
  52. 株式会社 ITAGE: 31 posts, 285 stocks
  53. 株式会社 gumi: 33 posts, 251 stocks
  54. 株式会社ハウテレビジョン: 23 posts, 247 stocks
  55. KDDI株式会社: 22 posts, 239 stocks
  56. 株式会社アクトキャット: 29 posts, 236 stocks
  57. Kii株式会社: 36 posts, 208 stocks
  58. 株式会社シェアウィズ: 32 posts, 191 stocks
  59. 株式会社ロコンド: 16 posts, 163 stocks
  60. Framgia: 32 posts, 159 stocks
  61. 株式会社ねこじゃらし: 20 posts, 107 stocks
  62. 株式会社タグバンガーズ: 26 posts, 106 stocks
  63. ピーシーフェーズ株式会社: 17 posts, 105 stocks
  64. 株式会社イーツー・インフォ: 20 posts, 69 stocks
  65. Goodpatch: 14 posts, 54 stocks
  66. MRT.Inc: 5 posts, 15 stocks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment