ログインに成功するという事は、テキストの投稿等の一般的なブラウザの操作はなんとかなるという事です。 Ruby(mechanize)は、数年前に、さくらのサーバーにインストールして使っていましたが、いつのまにか動作しなくなっていました。特に重要なものも無く放置していましたが、Windows にインストールするのは簡単である事がわかり、テストを行いました。 1) Ruby for Windows のインストール( 但しテストはしたのは32ビット ) 2) mechanize のインストール ※ インストールされた『Ruby コマンドプロンプトを開く』を実行 ※ gem install mechanize を実行
#mixiにログイン
print "Content-type: text/html\n\n"
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://mixi.jp/")
form = page.forms[0]
form["email"] = "ユーザ"
form["password"] = "パスワード"
page = form.submit
page = agent.get("https://mixi.jp/")
print page.body
#Twitterにログイン
print "Content-type: text/html\n\n"
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://twitter.com/")
form = page.forms[1]
form["session[username_or_email]"] = "ユーザ"
form["session[password]"] = "パスワード"
page = form.submit
page = agent.get("https://twitter.com/")
print page.body
重要なのは、agent インスタンスの設定です
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'
1) SSL の設定( 証明書チェックを無視 ) 2) META 要素でのリフレッシュに対応( 最近では主流のようです ) 3) ブラウザの User Agent の設定( 適当にすると、モバイル扱いになる ) 処理は、http ヘッダ無しでコマンドプロンプトから実行してもいいですし、http ヘッダ有りで AN HTTP Server で処理してもいいです。 関連する記事
|
|
【Rubyの最新記事】
- Ruby(mechanize) で PHP からの JSON 経由で値を取得
- Ruby(mechanize) でバイナリファイルをアップロード
- Ruby(mechanize) 使ってmixi 経由で Twitter へ投稿する( もちろん mixi にも投稿されます )
- land.toで動作保証はありませんが、最近の新しいサーバー(Linux)ではmechanizeをインストールできます
- Ruby:とにかく目的を達成する為に基本的で解りにくい部分の整理
- さくらインターネットでRuby使ってmixiボイスで投稿する為に【その6】:PHPからRubyを呼び出す場合は素直にHTTPで呼び出しましょう(外部じゃ無いですけど)
- さくらインターネットでRuby使ってmixiボイスで投稿する為に【その1】:PuTTYごった煮版でSSH接続




























