Twitterフォロワーのツイートを取得するOSSを作りました




2個目のOSS作りました

今回はTwitterの任意のアカウントのフォロワーのツイートを取得できるものを実装しました。下記リンクがGithubへのリンクになります。

tomokazukozuma/Twitter-Crawler

今更感はめちゃくちゃありますが、今後この機能を使って、Twitterアカウントの評価分析ツールを作ろうと考えています。これはその土台となる第一歩って感じですね。

ちなみに前回は「Socket.IOでリアルタイム通信を行うOSSを作りました」というのを作りましたが、誰からも何も反応がありませんでした。。。

インストールと使い方

1. repositoryのクローンとnpmモジュールのインストール

Githubからrepositoryをクローンしてきます。

git clone https://github.com/tomokazukozuma/Twitter-Crawler.git
cd Twitter-Crawler
npm innstall
npm install -g sequelize-cli

2. 環境変数の設定

.envにTwitter APIを使うためのアクセストークンなどを設定します。

vi .env

CONSUMER_KEY=consumer-key
COMSUMER_SECRET=consumer-secret
ACCESS_TOKEN_KEY=access-token-key
ACCESS_TOKEN_SECRET=access-token-secret

3. DBのマイグレーション

DBにはMySQlを使用し、フォロワー情報とフォロワーのツイート情報をそれぞれtwitter_followerとtwitter_follower_tweetに保存します。

マイグレーションツールにはSequelizeを使用します。インストールと使い方は下記リンクを参照してください。

Node.js Sequelizeでマイグレーションを行う手順

まず、接続するDBの設定をconfig.jsonに指定します。

vi sequelize/config/config.json

{
    "local": {
        "username": "user",
        "password": "password",
        "database": "twitter_crawler",
        "host": "127.0.0.1",
        "dialect": "mysql",
        "dialectOptions": {
            "charset": "utf8mb4"
        },
        "logging": false
    }
}

マイグレーションの実行前にMySQLのデータベースを作っておいてください。DB名はtwitter_crawlerです。

mysql -u user -p
CREATE DATABASE twitter_crawler;

下記でマイグレーションを実行し、テーブルを作成することができます。

cd sequelize
sequelize db:migrate --env local

こんな感じになります。

mysql> show tables;
+---------------------------+
| Tables_in_twitter_crawler |
+---------------------------+
| SequelizeMeta             |
| twitter_follower          |
| twitter_follower_tweet    |
+---------------------------+

4. 実行方法

フォロワーを取得するスクリプトの実行。引数に任意のアカウントのスクリーン名を指定してください。@以降の文字列です。フォロワー情報はtwitter_followerテーブルに保存されます。

babel-node script/twitter/twitter_follower.js --screenName=Any screen name

次にフォロワーのツイートを取得するスクリプトを実行します。ツイート情報はtwitter_follower_tweetテーブルに保存されます。

babel-node script/twitter/twitter_follower_tweet.js

まとめ

初期設定が大変なので今後Dockerにして簡単に使えるようにしたいと思います。あとはこの機能で取得できたツイートを機械学習で分析してアカウントの評価分析をやって行きたいと思います。

更新したらこの記事に追記していきます。

最後に、このOSSで使用している技術の関連記事を紹介します。

おすすめ書籍

JavaScriptとNode.jsを使ったクローラー作成について学びたい方におすすめの書籍です。全8章からなり、前半はクローラーとスクレイピング方法に関して解説されており、後半は取得したデータの形態素解析、機械学習や手書き文字の認識、解析結果のグラフ描画など、どのように分析するのか解説されています。一通りクローリングとスクレイピングを学びたい人におすすめの一冊です。

 

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です