はじめに
Twitter Streaming APIを使って人間の夢をクローリングをしました。
朝起きてからすることと言ったらTwitterです。
ある朝、フォロワーさんがとても面白い夢の内容をツイートしており、正直ニヤけました。
それを見て「人の夢ってユニークだよなあ」と思い、ピンときてクローリングにいたったものです。
作ったもの
バクくん - Twitter Bot
https://twitter.com/yumewomita_baku
コード
全てのコードはこちら
説明
夢の内容を持ってくる方法として、夢ツイートは大抵文章の終わりに「夢を見た」か「夢を見ました」を書くため、それらをキーワードにそれ以前の文章を取ってくるようにします。
これにはTwitter Straming APIのtrackメソッドを用いています。
スクレイピングをしていると、取ってきた情報の中に不要なキーワードや記号を含んでいる場合があります。
そこで、あらかじめそれらをストップワードとして決めておき、省く方法を取りました。
今回の場合だと、とある歌詞Botが「夢を見た」などとつぶやき散らかしていたため、名前かスクリーンネームに「Bot」を含まないツイートを取るようにしています。
後は取得したツイートの空白・改行、リプライの宛名等を消した後、ツイートします。
しかし...
Botを実際に見てみると、動いてはいるものの1つ問題点があります。
それは「夢を見た」のキーワードの前に空白がないと、該当するツイートを取得してこないことです。
推測するに、デフォルトでは英語での利用を想定して作られたため、trackメソッドでは取得の際にキーワードの前後に空白があることの判定をしているのかと思います。
前後に空白がないようなおもしろ夢ツイートを持ってくるようにしたいので、なんとかできないかなと思っています。(強い人助けて下さい)
おわりに
ツイッター上にはまだメディアが取り上げていないような有益なコンテンツが眠っている。
と偉い人が言っていました。
ピンときたらツイッターのクローリングをしていきましょう。