さくらインターネットに 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 にアクセスする