rails 独学して軽くにちゃんまとめつくる

読者です 読者をやめる 読者になる 読者になる

rails独学して軽く2ちゃんまとめビルダーをつくる。

rails tutorial読破→2chまとめビルダー作成→アメリカでインターンシップ→恋活SNSを作成・・・・・→音で感触をつくり感触をあつめたライブラリをつくる

rubyのTwitter::Stream使いツイッターでエクセルで使える名簿を作成する

悪用厳禁でおねがいします。また、今回は Twitter::Streaming を使うため、質よりも量を重視しています。フォロワー○○人以上!とかアニメが好きな人とか東京在住の女子大生なんてコアな層の名簿を作りたいひとは対象外です。あくまで悪用はしないけど、twitter::Streaming の応用や rubycsv 使いたいなーと思う人がためしてください。

とりあえずこれがソース。

require 'tweetstream'
require 'csv'


config = {
  :consumer_key      => 'じぶんの',
  :consumer_secret   => 'じぶんの',
  :access_token      => 'じぶんの',
  :access_token_secret => "じぶんの"
}

meibo_list = Array.new 
meibo_ary = Array.new
list_tweets = Array.new
count = 0

client = Twitter::Streaming::Client.new(config)
CSV.open('tweet_meibo.csv', 'w') do |meibo|
  client.sample do |tweet|
    tmp_ary = Array.new
    puts count + ""
    if tweet.is_a?(Twitter::Tweet) && tweet.lang == "ja"
      tmp_ary << "@" + tweet.user.screen_name
      tmp_ary << tweet.user.name
      tmp_ary << tweet.user.description
      meibo << tmp_ary
      break if count >= 100 #ほしい名簿の件数をお書き
      count += 1
    end
  end
end

これでツイッターアカウントのIDと名前と自己紹介文を取得することができる。現在つぶやいている人ツイートを介しているのでアクティブユーザーである可能性がたかいといえます。

ポイントを説明しておきます。 まず config で設定されているコードは自分で取得してください。検索すればたくさん出てきます。ツイッターの登録と電話番号の登録をして、数クリックするだけで取得できます。10分でできます。

twitter api 登録 - Google 検索

CSV.open('tweet_meibo.csv', 'w') do |meibo| この部分で CSV を開けてます。中の tweet_meibo.csv というのは CSV ファイル名で、なければ自動で作成してくれるのでそのままでいいでしょう。

CSV ファイルはエクセルで使える形式のファイルで

名前,食べ物,飲み物
もり,マック,コーラ
かみ,はす,ファンタ

みたいにコンマと改行とデータから成り立ってます。これはエクセルのように碁盤状のデータ構造なのでエクセルで開けます。

if tweet.lang == "ja"

これはツイッターが日本語であることを要請しています。

tmp_ary << "@" + tweet.user.screen_name
tmp_ary << tweet.user.name
tmp_ary << tweet.user.description

tmp_ary という配列にデータを入れています。 CSV ファイルを扱うとき、Ruby では2次元配列として処理するので、1人のユーザーの情報を配列として扱ってます。

tweet.user で流れているツイッターのユーザー情報を取得することができます。 tweet.user.screen_name で @で始まるあのIDを取得することができます。この状態では@ がついてないのでつけておきます。

tweet.user.name は文字通り名前を取得できます。

tweet.user.descriptionでそのユーザーの自己紹介文を取得することができます。

https://www.google.co.jp/search?q=twitter+api+%E7%99%BB%E9%8C%B2&ie=utf-8&oe=utf-8&client=firefox-b-ab&gfe_rd=cr&ei=6yvVWLvxM8OQ8Qfao6rABA

meibo << tmp_ary でmeibo という配列に先ほどユーザーの名前、ID、自己紹介文の配列をいれます。先ほども書きましたが、RubyCSV ファイルの書き込み読み込みをするときは2次元配列として扱うことに注意してください。

break if count >= 100 で100人分の名簿を集めることができます。ここの数字を変えることで取得できる人数を変えることができます。