2個目のOSS作りました
今回はTwitterの任意のアカウントのフォロワーのツイートを取得できるものを実装しました。下記リンクがGithubへのリンクになります。
今更感はめちゃくちゃありますが、今後この機能を使って、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で使用している技術の関連記事を紹介します。
- Node.js – babelでES6を導入する最短手順
- Node.js Sequelizeでマイグレーションを行う手順
- Node.js asyncの有効な使い方
- Node.jsでの環境変数の設定方法
おすすめ書籍
JavaScriptとNode.jsを使ったクローラー作成について学びたい方におすすめの書籍です。全8章からなり、前半はクローラーとスクレイピング方法に関して解説されており、後半は取得したデータの形態素解析、機械学習や手書き文字の認識、解析結果のグラフ描画など、どのように分析するのか解説されています。一通りクローリングとスクレイピングを学びたい人におすすめの一冊です。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す