はじめに
node.js & クローラー学習中です!
JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック
- 作者: クジラ飛行机
- 出版社/メーカー: ソシム
- 発売日: 2015/08/31
- メディア: 単行本
- この商品を含むブログ (2件) を見る
ツイ廃としては(?)やはりTwitterを使って何かしたくなっちゃいますね!今日はTwitter連携します。
twitモジュール
作者様のGithubにすべてが書かれてますね!
StreamAPIを使う
書いたスクリプト。
MacBook-Air:twitter take$ cat tw-stream.js var Twit = require('twit'); var T = new Twit({ consumer_key: '(省略)', consumer_secret: '(省略)', access_token: '(省略)', access_token_secret: '(省略)' }); // stream and search word var stream = T.stream('statuses/filter', {track: 'JavaScript'} ); stream.on('tweet', function(tw) { var text = tw.text; var user_name = tw.user.name; console.log(user_name + "> " + text); });
これはJavaScriptが含まれるツイートを検索し続けます。実行結果を見てみましょう。
MacBook-Air:twitter take$ node tw-stream.js Русских во Флориде> Hiring: #JavaScript Developer #developer - #developerjobs #Reston #VA #hiring #JobOpening #rtjobs Apply: https://t.co/conP0pnzfA JavaScript is Easy> Xbox One Set To Start On New Crystal River Plant #fakeheadlinebot #learntocode #makeatwitterbot #javascript Pinoy Business Club> <script type="text/javascript"... https://t.co/wTuZp0dCw7 Imperator Lauriosa> RT @gdipgh: Sign up for Javascript for Beginners, March 5-6 at the Pgh Tech Council: https://t.co/LcKv0h7n75 (省略)
ユーザ名と本文のみが流れます。
ちゃんと表示されます。ストリーム!
検索する
単純な検索は以下の方法で実現できます。今回はTwitter特有の検索オプションを使ってみました。fromでつぶやくユーザ名を指定します。countは取得する件数ですね。
data.StatusesにArrayの形で取れるので、forEachでまわして、ユーザ名と本文のみ取得しました。
forEachの引数は、ループで取れるオブジェクト、インデックス、元の配列オブジェクトですね。
MacBook-Air:twitter take$ cat tw-search.js var Twit = require('twit'); var T = new Twit({ consumer_key: '(省略)', consumer_secret: '(省略)', access_token: '(省略)', access_token_secret: '(省略)' }); T.get('search/tweets', { q: 'ブログの更新予告です。 from:take_she11', count: 5 }, function(err, data, response) { data.statuses.forEach(function(val,index,ar){ console.log(val.user.name); console.log(val.text); }); })
実行結果です。
MacBook-Air:twitter take$ node tw-search.js take ブログの更新予告です。(自動投稿)3/2=>atomutilを使って全記事のタイトルと本文を取得する,3/3=>「一行バカ売れ」から考えるブログや書籍のタイトル付け,3/4=>英語でプログラミング言語を学ぶ「JavaScript: The Good Parts 」Object編, take ブログの更新予告です。(自動投稿)3/10=>「サーバ/インフラエンジニア養成読本DevOps編」を読んだので使われてる技術まとめる,3/11=>はてなのエンジニアに期待する「アウトプット」を読んだ,3/12=>ニュースサイトを参考にブログのカテゴリ分けを再考する, take ブログの更新予告です。(自動投稿)2/29=>ブログの記事ネタリストをtoodledoで管理する,3/1=>日報をgitlabで管理すると結構いいよ,3/2=>atomutilを使って全記事のタイトルと本文を取得する, take ブログの更新予告です。(自動投稿)2/26=>node.jsでhello,worldする,2/27=>「脳が認める勉強法」から考える、自分にとってベストの勉強法, take ブログの更新予告です。(自動投稿)2/24=>「システム思考をはじめてみよう」を読んで考える、努力や我慢をしない問題解決,2/25=>小銭貯金ソリューション、いよいよ両替するためにコインケースを買った話,2/26=>node.jsでhello,worldする,
ちゃんと取れてますね!
まとめ
今回はnode.jsとTwitterを連携し、検索機能を試してみました。ツイートすることもできるはず。
次は取得したツイートを形態素解析にかけてみたいと思います。