SQLの窓

2010年01月04日


Ruby : Seesaa の複数のブログの現在の訪問者数とページビューの一覧

実際10以上作ってますが、良く使っているのは6つくらい。
でも、順番にアクセス解析見て行くのはとても面倒なので作りました。

以下のサンプルだけで言えば、ループ処理にできますが、
実際今後の運用では個別になると思うのであえてそのままです。

テストの為今日時々実行してみましたが、
※ さすがに混んでる時間帯はサーバーエラーになりますね

実際は、ひとつづつ CRON に登録して、ログを見るように
したほうが良いです。でないと、一つでもかなり待つ事になります。
#!/usr/local/bin/ruby
print "Content-type: text/html; Charset=shift_jis\n\n"

require "cgi"
cgi = CGI.new

ENV['GEM_HOME']="/home/lightbox/gems"
$LOAD_PATH.push('/home/lightbox/lib')

require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
#seesaa にログイン
page = agent.get("https://ssl.seesaa.jp/www/pages/welcome/login/input")
form = page.forms.first
form["member__email"] = "メールアドレス"
form["member__password"] = "パスワード"
form.submit

print "<pre>"


# 対象ブログのページ
page = agent.get('http://blog.seesaa.jp/pages/my/blog/home/?blog_id=ブログ番号')
page = agent.get('http://blog.seesaa.jp/pages/my/blog/access_log/report/index?log_type=file')

/log\-total\-text.+log\-total\-num">.+?>(.+?)<.+log\-total\-num">.+?>(.+?)</m =~ page.body
print "logical error   " +  $1 + "/" + $2 + "\n"

# 対象ブログのページ
page = agent.get('http://blog.seesaa.jp/pages/my/blog/home/?blog_id=ブログ番号')
page = agent.get('http://blog.seesaa.jp/pages/my/blog/access_log/report/index?log_type=file')

/log\-total\-text.+log\-total\-num">.+?>(.+?)<.+log\-total\-num">.+?>(.+?)</m =~ page.body
print "ARGUS   " +  $1 + "/" + $2 + "\n"

# 対象ブログのページ
page = agent.get('http://blog.seesaa.jp/pages/my/blog/home/?blog_id=ブログ番号')
page = agent.get('http://blog.seesaa.jp/pages/my/blog/access_log/report/index?log_type=file')

/log\-total\-text.+log\-total\-num">.+?>(.+?)<.+log\-total\-num">.+?>(.+?)</m =~ page.body
print "手パレ   " +  $1 + "/" + $2 + "\n"

# 対象ブログのページ
page = agent.get('http://blog.seesaa.jp/pages/my/blog/home/?blog_id=ブログ番号')
page = agent.get('http://blog.seesaa.jp/pages/my/blog/access_log/report/index?log_type=file')

/log\-total\-text.+log\-total\-num">.+?>(.+?)<.+log\-total\-num">.+?>(.+?)</m =~ page.body
print "画狼   " +  $1 + "/" + $2 + "\n"

# 対象ブログのページ
page = agent.get('http://blog.seesaa.jp/pages/my/blog/home/?blog_id=ブログ番号')
page = agent.get('http://blog.seesaa.jp/pages/my/blog/access_log/report/index?log_type=file')

/log\-total\-text.+log\-total\-num">.+?>(.+?)<.+log\-total\-num">.+?>(.+?)</m =~ page.body
print "琴線   " +  $1 + "/" + $2 + "\n"

# 対象ブログのページ
page = agent.get('http://blog.seesaa.jp/pages/my/blog/home/?blog_id=ブログ番号')
page = agent.get('http://blog.seesaa.jp/pages/my/blog/access_log/report/index?log_type=file')

/log\-total\-text.+log\-total\-num">.+?>(.+?)<.+log\-total\-num">.+?>(.+?)</m =~ page.body
print "アプリ   " +  $1 + "/" + $2 + "\n"


print "</pre>"

print "最新アクセスリスト一覧"

#print page.body

/m は、. と \s に改行コードをマッチさせる為に使用しています。
( ページ全体を一つの文字列として処理 )




タグ:ruby
posted by lightbox at 2010-01-04 15:36 | Ruby | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり