- blogs:
- cles::blog
2007/10/20

scRUBYt!を使ってmixiの足跡をスクレイピング




"ruby スクレイピング"というキーワードでいろいろ検索してまわってみたらWWW::MechanizeよりもscRUBYt!の方が面白そうだったので、これをつかって軽く練習してみることにします。他にもscrAPIというのもあるみたいですが、日ごろからXSLのコーディングをしていたりすることもあってCSSのセレクタ表記よりもXPathに馴染んでいるということでscRUBYt!を選んでみました。
かるく肩慣らしということで、mixiの足跡をスクレイピングしてみました。
なぜ足跡なのかといえば、特に深い意味はないんですけど。。。。。
† mixiの足跡をスクレイピングする
getmixifootprint.rb
require "rubygems"
require "scrubyt"
config = {"user"=>"user@example.com", "pass"=>"passwords"}
mixi_footprint = Scrubyt::Extractor.define do
fetch "http://mixi.jp/"
fill_textfield "email",config["user"]
fill_textfield "password",config["pass"]
submit
fetch "http://mixi.jp/show_log.pl"
footprints '//div[@id=\'log_color\']' do
footprint "/ul/li" do
accessed lambda {|x| x[0, 20]}, :type => :script
name '/a[1]'
userid '/a[1]/@href'
end
end
end
mixi_footprint.to_xml.write(STDOUT, 1)
簡潔でいい感じですね。
たぶん今後のお仕事に大活躍してくれそうな予感。
ちなみにプログラムの例はプロジェクトにscrubyt-examplesとしてあがっているので、これらを参考にして同じように書いていくと簡単かも。
† ひとつ疑問が
「scRUBYt!」ってなんて読むんだろう?
† 2009/1/5追記
足跡削除機能が追加に伴ってページが変更されたため、スクリプトをアップデートしました。
getmixifootprint.rb
require "rubygems"
require "scrubyt"
config = {"user"=>"user@example.com", "pass"=>"passwords"}
mixi_footprint = Scrubyt::Extractor.define do
fetch "http://mixi.jp/"
fill_textfield "email",config["user"]
fill_textfield "password",config["pass"]
submit
sleep 3
fetch "http://mixi.jp/show_log.pl"
footprints '//ul[@class=\'logList01\']' do
footprint "/li" do
date '/span[@class=\'date\']'
name '/span[@class=\'name\']/a[1]'
url '/span[@class=\'name\']/a[1]/@href'
end
end
end
mixi_footprint.to_xml.write(STDOUT, 1)
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2242
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
Andy
(2007/10/22 17:00)
<%HatenaAuth()%>
多分「スクルビーイト」でいいのでは。
要はscr(aping)+ruby+itの略ってことですよね。
hsur
(2007/10/26 02:01)
<%HatenaAuth()%>
最後のtがちょっと気になってて、これってナンだろうと思ったら読めなくなっちゃったんですが、あまり難しく考える必要がなかったわけですね。
ありがとうございます。
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(114445)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112963)
3 . 年次の人間ドックへ(112388)
4 . 2023 年分の確定申告完了!(1つめ)(111956)
5 . 三菱鉛筆がラミーを買収(111830)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112963)
3 . 年次の人間ドックへ(112388)
4 . 2023 年分の確定申告完了!(1つめ)(111956)
5 . 三菱鉛筆がラミーを買収(111830)
cles::blogについて
Referrers