config/initializars/session_storeの
:keyの上辺りに
:expire_after => 2.years
を記述すれば、最終セッションから2年伸びる。
これでブラウザを落としてもセッション情報が更新される。
2011年4月18日月曜日
2011年4月16日土曜日
ServersmanでNokogiriを使うときは気をつけろ
serversmanってよりCentOSだけど。
CentOS上で提供されているlibxmlのバージョンが少し古く、Nokogiri自体のバージョンが一緒でも、ローカル環境と違った動きをすることがある。
なので、バージョンをあげてあげよう。
# wget ftp://xmlsoft.org/libxml2/libxml2-2.7.8.tar.gz
# tar xvzf libxml2-2.7.8.tar.gz
# cd libxml2-2.7.8
# sh configure
# make check
# sudo make install
多分これで出来るはず。
CentOS上で提供されているlibxmlのバージョンが少し古く、Nokogiri自体のバージョンが一緒でも、ローカル環境と違った動きをすることがある。
なので、バージョンをあげてあげよう。
# wget ftp://xmlsoft.org/libxml2/libxml2-2.7.8.tar.gz
# tar xvzf libxml2-2.7.8.tar.gz
# cd libxml2-2.7.8
# sh configure
# make check
# sudo make install
多分これで出来るはず。
2011年4月14日木曜日
SBI証券のサイトから、リアルタイム株価を取得する方法
SBI証券のサイトから、リアルタイム株価を取得する方法
通常のサイトはよく分からなかったので、バックアップサイトから取得する。
ログインして取得するのでIDとパスワードが必要。
mechanizeすげーけど、難しい……
twitterとかに投稿するようにしたり、サーバに負荷かけるようにしたらあかんよ、一応。
通常のサイトはよく分からなかったので、バックアップサイトから取得する。
ログインして取得するのでIDとパスワードが必要。
require 'rubygems'
require 'mechanize'
require 'kconv'
$id = ''
$pass = ''
stockcode = ['9501']
def stockprice(stockcode)
# SBI証券にログイン
agent = Mechanize.new
agent.get( 'https://k.sbisec.co.jp/bsite/visitor/top.do' )
agent.page.encoding = 'utf8'
agent.page.form_with('form1'){|form|
form['username'] = $id
form['password'] = $pass
form.click_button
}
# 株価データの取得
stockcode.each do |stock|
agent.get( 'https://k.sbisec.co.jp/bsite/price/search.do' )
puts agent.page.uri
agent.page.form_with(:name => nil ){|form|
form['ipm_product_code'] = stock
form.click_button
}
print stock, "の現在値は", agent.page.at('font.ltext').text, "円¥n"
end
end
stockcode.each do |stockcode|
stockprice(stockcode)
end
mechanizeすげーけど、難しい……
twitterとかに投稿するようにしたり、サーバに負荷かけるようにしたらあかんよ、一応。
2011年4月13日水曜日
ページ内からリンクの貼られている画像だけを保存する方法
require 'rubygems'
require 'nokogiri'
require 'open-uri'
url = 'http://yahoo.co.jp'
doc = Nokogiri.HTML(open( url ))
doc.css('a').css('img').each do |f|
img_url = f.attribute('src').value
puts img_url
filename = File.basename(img_url)
open(filename, 'wb') do |file|
open(img_url) do |data|
file.write(data.read)
end
end
end
ちなみに純粋に画像だけを取得するなら、
doc.css('img').each do |f|
に修正すればいい。
参考:
http://d.hatena.ne.jp/gan2/20080531/1212227507
require 'nokogiri'
require 'open-uri'
url = 'http://yahoo.co.jp'
doc = Nokogiri.HTML(open( url ))
doc.css('a').css('img').each do |f|
img_url = f.attribute('src').value
puts img_url
filename = File.basename(img_url)
open(filename, 'wb') do |file|
open(img_url) do |data|
file.write(data.read)
end
end
end
ちなみに純粋に画像だけを取得するなら、
doc.css('img').each do |f|
に修正すればいい。
参考:
http://d.hatena.ne.jp/gan2/20080531/1212227507