twitterのFavoritesをローカルにcsv形式で書き出すだけの簡単なお仕事です
自分で必要なRubyスクリプトを書いてみるシリーズ。
twitterのFavoritteページ、後から見直したり検索したりするのには不向きです。
ローカルにとってきてcsvにしとけば、どうとでもできるかなと思って書いてみました。
----
require 'rubygems'
require 'hpricot'
require 'net/http'
Net::HTTP.version_1_2
# const
HttpScheme = 'http://'
Address = 'twitter.com'
Favorite_path = '/favourites?page='
Status_path = '/statuses/'
# arg
account = 'account'
password = 'password'
target = 'account'
max_page = 30
i = 1
while i<max_page
path = '/'+target+Favorite_path+i.to_s
req = Net::HTTP::Get.new(path)
req.basic_auth(account, password)
Net::HTTP.start(Address){|http|
body = http.request(req).body
doc = Hpricot(body)
table = doc.at('table')
if table != nil then
table.search('tr').each{|tr|
id = tr['id']
id.gsub!(/status_/, '')
screen_name = tr.search('td')[1].at('strong').at('a').inner_text
content = tr.search('td')[1].at('span').inner_text
content.gsub!(/\n/, '')
content.gsub!(/\t/, '')
published = tr.search('td')[1].search('abbr')[0]['title']
url = HttpScheme + Address + '/' + screen_name + Status_path + id
printf("\"%s\",\"%s\",\"%s\",\"%s\"\n", screen_name, content, published, url)
}
end
}
i+=1
end
----
| 固定リンク
「twitter」カテゴリの記事
- ふぁぼカウンター(2009.06.28)
- あの人にふぁぼられたい!(2009.06.21)
- 台北でもカレーは幸福!(2008.12.13)
- twitterのFavoritesをローカルにcsv形式で書き出すスクリプト-改(2008.06.29)
- 日本の救助隊はこのように行動した (2008.05.19)


コメント
日本好像很流行Ruby?
投稿: 贰月 | 2007年11月25日 (日) 02時25分
使わせて頂きます。素晴らしいスクリプトありがとうございます。
使ってみて気づいたのですが、認証(ユーザ名とパスワード)は役に立っていないようです。「req.basic_auth(account, password)」の部分を残してもコメントアウトしても、protected userの発言は取得できませんでした。
BASIC認証が効くのはAPIの場合のみと思われます。Tweenの作者曰く、認証付きでHTMLを取るには、ログイン画面にユーザ名とパスワードを送ってクッキーを取得し、そのクッキーを送ってHTMLを取得する必要があるとのことでした。
投稿: Maraigue | 2008年4月11日 (金) 23時57分
あれ、そうですか?
認証すれば、そのユーザーが閲覧を許可されているprotectedユーザーの発言はとれてると思いますが。
投稿: ヤス小林、 | 2008年4月12日 (土) 15時33分
すみません、もう一度試したらうまく取得できました。
お騒がせしました。
投稿: Maraigue | 2008年4月13日 (日) 22時45分