6

Herokuのrubyアプリへのスケジューラアドオンによって実行されるrakeタスク内でMechanizeを使用しています。スクリプトでは、スクリプトがログインできなくなった最近まで機能していたWebページにログインしています。デバッグを開始したとき、Herokuコンソールでスクリプトを実行すると、ローカルコンソールとは異なるフォームフィールドが表示されます。

ローカルルビーコンソールには、次のフィールドが表示されます。

>> asf.fields.each do |f| puts f.name end
__VIEWSTATE
__PREVIOUSPAGE
__EVENTVALIDATION
login$field
password$field

Herokuコンソールには、htmlソースに表示されない追加のフィールドが1つ表示されます。

>> asf.fields.each do |f| puts f.name end
__VIEWSTATE 
__PREVIOUSPAGE
__EVENTVALIDATION
login$field
password$field
captcha$txtCaptcha

私が発行するとき:

>> asf.click_button

更新: ユーザーエージェントをいくつかの異なるブラウザーエイリアスに変更しようとしましたが、うまくいきませんでした。HerokuからのIPアドレスがキャプチャを提供しているようです。プロキシサーバーを介してリクエストを行うこと、またはTorを使用してIPが公開されないようにすることは可能でしょうか?

4

1 に答える 1

15

あなたの質問への答えはイエスです、あなたはtorを通して代理することができます。私は過去にそれをしました、あなたが直面する問題:

  1. Herokuで実行している場合は、どこか別の場所でTorを実行する必要があります

  2. Torはこするのがかなり遅い

  3. Tor(privoxy)と話すことができるプロキシを設定する必要があります

  4. 深刻なスクレイピングの場合は、複数のtorを実行する必要があります

  5. あなたのtoripsでさえしばらくするとブロックされます。

面倒な価値があるかどうかを考えさせます。IPマスキングプロキシサービスの料金を支払うことができます。これは、より簡単な方法かもしれません。

私がこれを調べていたとき、リンクが私にいくつかの方法をもたらしたと思います:http ://www.howtoforge.com/ultimate-security-proxy-with-tor

于 2012-05-28T23:54:32.987 に答える