さくらインターネットに mechanize をインストールしても、https が動かないので Windows10 で mechanize をインストールして実行しています。 Windows10 に mechanize のインストールも、C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/net-http-persistent-3.0.0/lib/net/http/persistent.rb を以下のリンク先のように変更する必要があります。 Sets a default pool size for Windows as Process::RLIMIT_NOFILE is not supported
# ▼ エラー DEFAULT_POOL_SIZE = Process.getrlimit(Process::RLIMIT_NOFILE).first / 4 # ▼ 変更 if Gem.win_platform? then DEFAULT_POOL_SIZE = 256 else DEFAULT_POOL_SIZE = Process.getrlimit(Process::RLIMIT_NOFILE).first / 4 end
引数は、cgi に引き渡される(cgi['no'])ので、#{cgi['no']} で文字列内に埋め込んで展開させます。 seesaa_backup.rb Windows では、STDOUT が crlf で出力される為、Seesaa からの出力と同じにする為に、冒頭で STDOUT.binmode を実行しています。
# Seesaa エクスポート
STDOUT.binmode
# CGI 用
require "cgi"
cgi = CGI.new
# ヘッダを出力( ダウンロード用に application/octet-stream と ファイル名 )
puts "Content-Type: application/octet-stream; charset=utf-8"
puts "Content-Disposition: attachment; filename=export.log"
puts "Expires: Thu, 19 Nov 1981 08:52:00 GMT"
puts "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
puts "Pragma: no-cache"
puts
# Mechanize 用
require 'mechanize'
agent = Mechanize.new
agent.verify_mode = OpenSSL::SSL::VERIFY_NONE
agent.follow_meta_refresh = true
agent.user_agent = 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
# ログインページ
page = agent.get("https://ssl.seesaa.jp/pages/welcome/login/input")
# FORM 要素の name 属性で参照
form = page.form_with(:name => 'authpost')
# FORM 要素内の入力
form["member__email"] = "メールアドレス"
form["password"] = "パスワード"
# FORM 要素を使用して送信
page = form.submit
# ここでログインが完了するので、目的のページへ移動する
# 対象ブログのページ( デフォルトで新規投稿へ移動 )
page = agent.get("https://blog.seesaa.jp/cms/home/switch?blog_id=#{cgi['no']}")
# エクスポートページへ移動
page = agent.get('https://blog.seesaa.jp/cms/tools/mt/export/input')
# このページの1番目の FORM
form = page.forms[0]
# この FORM で送信
page = form.submit
# 結果をブラウザに出力
print page.body
関連する記事
|
|
【Ruby 2018の最新記事】
- さくらインターネットに Ruby をインストールして mechanize ( 先に nokogiri のインストールが必要でした )
- Ruby + MySQL + IFRAME + Bootstrap : 問い合せ WEB アプリテンプレート
- Ruby 2.4 で GET/POST メソッドを想定した CGI 用のテンプレート改良版( FORM で MySQL 参照と更新 )
- Ruby のエンコーディング( スクリプト・デフォルト・STDIN・STDOUT )
- Ruby 2.4 で GET/POST メソッドを想定した CGI 用の簡易テンプレートを作成してみました
- Windows10 : Ruby で日本語メール送信
- Eclipse + Ruby : win32ole(COM使用の為) + MySQL Connector/ODBC でループ処理をしながら更新
- Pleiades Eclipse 4.7 Oxygen で Ruby を使って MySQL にアクセスする


さくらインターネットに mechanize をインストールしても、



