Google+からデータを取得する方法がだいぶわかってきたので、今度はtwitterに挑戦する。
twitterの検索機能を使ってみる。
下記のページを参考に、あらかじめpythonからtwitterにアクセスするための準備をしておく。
1.Keyの取得
http://blog.hogeo.jp/2011/05/how-to-make-twitter-bot-python-twitter.html
2.モジュールpython-twitterの取得
http://code.google.com/p/python-twitter/
3..python-twitterの基本的な使い方を覚える
http://blog.hogeo.jp/2011/05/python-twitter-api-python-twitter-part2.html
4.検索キーワードで日本語を使うやり方を覚える
twitterから特定のキーワードで検索するには、api.GetSearch()を使う。
ここで、キーワードに日本語を使いたい場合、一工夫必要。リクエストのURIに日本語の文字列を渡す場合、文字コードの変換が必要である。こちらを参考にした。
http://d.hatena.ne.jp/yamahei7/20110520/1305871361
作ったコードはこちら。
keywords に好きなキーワードを設定してみよう。
http://www.mycodestock.com/code/5704/
twitterへのapi経由のアクセスは、件数の制限あるので、
statuses = api.GetSearch(keyword, per_page=30, page=1, lang='ja')
のper_page,pageの数値は調整していってください。langで言語が指定できる。
2012/04/06
2012/04/04
AKB48を分析する - 3.AKB48のメンバーリストをMongoDBに突っ込む
下記のPython スクリプトで、メンバーのIDをAKB48 on google+のサイトからゲットし、やすす等スタッフのIDを加えてMongoDBにinsertできる。
BeautiflSoupというモジュールを使ってサイトからgoogle+のメンバーIDを抽出している。このモジュールはこういた処理をするときの定番みたいです。
_idという項目が、リレーショナル・データベースでいうところのプライマリーキーの役割をはたすもので、これは指定しないとMongoDBが自動的に採番する。リランしたときにデータが重複しないように、google+のIDを_idにセットするようにしている。
次は、このレコードを読み、google+のアクティビティを取得するプログラムを作る予定です。
BeautiflSoupというモジュールを使ってサイトからgoogle+のメンバーIDを抽出している。このモジュールはこういた処理をするときの定番みたいです。
_idという項目が、リレーショナル・データベースでいうところのプライマリーキーの役割をはたすもので、これは指定しないとMongoDBが自動的に採番する。リランしたときにデータが重複しないように、google+のIDを_idにセットするようにしている。
次は、このレコードを読み、google+のアクティビティを取得するプログラムを作る予定です。
#! c:/Python26/python.exe# coding: utf-8import pymongo #@UnresolvedImportfrom pymongo import Connection #@UnresolvedImportfrom BeautifulSoup import BeautifulSoup #@UnresolvedImportimport urllibdef ggtsidlist_make():soup = BeautifulSoup(urllib.urlopen("http://www.google.com/intl/ja/+/project48/").read())lisoup=[]ggtsidlist = []for lisoup in soup.findAll("li"):try:ggtsidlist.append(lisoup['data-gplusid'])except:continueggtsidlist.append('113474433041552257864') #やすすggtsidlist.append('108897254135232129896') #よすすggtsidlist.append('112435502021367429566') #しのぶggtsidlist.append('113091703821013997975') #木島ggtsidlist.append('103803814106571203433') #北川return ggtsidlistif __name__=='__main__':con = Connection()ggts = con[u'ggts']# con.ggts.ggtsid.remove()record = {}ggtsidlist = ggtsidlist_make()for ggtsid in ggtsidlist:record = {u'ggtsid':ggtsid,u'_id':ggtsid}print recordcon.ggts.ggtsid.insert(record)
AKB48を分析する - 4.Google+のデータを取得する
Google+におけるAKB48メンバーの投稿(アクティビティ)と、それに対するコメント(メンバーのみ)を取得し、MongoDBにインサートするPythonプログラムを作成した。
これを実行し、数時間経つと、私のPCにすべてのデータが格納されるのだ!
次はこれを使ってどういう分析をするかだな。
ソースコードは、mycodestockというサービスを使って公開している。
このサービス、ちょっとしたコードを書いて保存しておくのに便利だ。
1.Google+ AKB48 ProjectからメンバーのID一覧を取得する
http://www.mycodestock.com/code/5672/
1.1.BeautifulSoup を使用して、Google+ AKB48 ProjectのhtmlからメンバーのIDを抽出
1.2.PyMongo を使用してPythonのスクリプトからMongoDBにデータをinsertする
1.3.MongoDBで、RDBにおけるプライマリーキーの働きをする'_id'という項目にIDをセットする
これにより、リランしてもデータが重複しないようにする
2.アクティビティを取得する
http://www.mycodestock.com/code/5673/
2.1.dateutil.parser を使用してRFC3339形式で格納されているアクティビティの投稿日付、更新日付をPythonのdatetime型に変換し、PyMongo上の項目として追加する。これは後々日付別の分析を簡単にするため
2.2.あとのテックニックは1.2と1.3を使う
3.コメントを取得する
http://www.mycodestock.com/code/5674/
3.1.Activity IDからCommentを取得する際、対象の日付を絞る。こうしないととっても時間がかかる。最初に実行するときはすべての日付を取得するようにするが、2回目以降は前日以降のActivityのみ対象とする。
この際、Pythonのdatetime型の日付と、Google+のRFC3339形式のデータを比較するため、rfc3339.pyというスクリプトを使う
3.2.あとのテックニックは1.2と1.3を使う
これを実行し、数時間経つと、私のPCにすべてのデータが格納されるのだ!
次はこれを使ってどういう分析をするかだな。
ソースコードは、mycodestockというサービスを使って公開している。
このサービス、ちょっとしたコードを書いて保存しておくのに便利だ。
1.Google+ AKB48 ProjectからメンバーのID一覧を取得する
http://www.mycodestock.com/code/5672/
1.1.BeautifulSoup を使用して、Google+ AKB48 ProjectのhtmlからメンバーのIDを抽出
1.2.PyMongo を使用してPythonのスクリプトからMongoDBにデータをinsertする
1.3.MongoDBで、RDBにおけるプライマリーキーの働きをする'_id'という項目にIDをセットする
これにより、リランしてもデータが重複しないようにする
2.アクティビティを取得する
http://www.mycodestock.com/code/5673/
2.1.dateutil.parser を使用してRFC3339形式で格納されているアクティビティの投稿日付、更新日付をPythonのdatetime型に変換し、PyMongo上の項目として追加する。これは後々日付別の分析を簡単にするため
2.2.あとのテックニックは1.2と1.3を使う
3.コメントを取得する
http://www.mycodestock.com/code/5674/
3.1.Activity IDからCommentを取得する際、対象の日付を絞る。こうしないととっても時間がかかる。最初に実行するときはすべての日付を取得するようにするが、2回目以降は前日以降のActivityのみ対象とする。
この際、Pythonのdatetime型の日付と、Google+のRFC3339形式のデータを比較するため、rfc3339.pyというスクリプトを使う
3.2.あとのテックニックは1.2と1.3を使う
登録:
投稿 (Atom)