4

私はJavaを介してWebサイトにログインするいくつかの方法を試しました。watijやHTMLunitなどを使ったことがありますが、なじみがないためログインできません。

誰かがJavaを介してログインする方法を詳しく教えてもらえますか

具体的には、ORKUTにログインして、ログイン後に表示されるページのページソースが必要です。

4

4 に答える 4

5

答えは、Webサイトがあなたを認証しようとする方法によって異なります。

  • HTTPヘッダー(基本認証)にユーザー名とパスワードを設定する必要がありますか?
  • または、ユーザー名とパスワードを含むフォームに記入して送信する必要がありますか?

どちらの場合も、commons-httpclientをお勧めしますが、後者の画面スクレイピングアプローチは、プログラムで実行するのが常に面倒です。

基本認証については、httpclientの認証ガイドを参照してください。

フォーム認証の場合、理解するにはページのHTMLソースを確認する必要があります

  • フォームが送信されるURL
  • 送信するパラメータの名前は何ですか

httpclientでフォームを送信する方法については、POSTメソッドのドキュメントをご覧ください。

httpclientサイトには、基本的なチュートリアルも含まれています。

于 2009-09-09T18:55:02.407 に答える
3

そのようなことを行い、現実世界のWebで生き残るための最良のチャンスは、Selenium-RCを使用することです。

基本的には、ブラウザをリモートコントロールして、手動で実行できること(ファイルのアップロードを除く)を実行します。

何度も、私はこのパターンを使用しました:

  1. セレンでログイン
  2. クッキーを取る
  3. 私のお気に入りのHTTPライブラリを続けてください。
于 2009-09-09T18:58:01.717 に答える
0

なぜJava経由でログインしようとしているのですか、cURLだけを使用しないのはなぜですか?あなたが達成しようとしている特定の何かがありますか?

于 2009-09-09T18:22:50.173 に答える
0

OrkutはGoogle認証システムを使用してログインします。私の提案は、FiddlerのようなHTTPデバッガーを使用して、ログイン中にトラフィックを監視することです。おそらく、複製する必要のあるCookieとリダイレクトがあります。

一般的、

  1. ログインフォームを見て、名前とパスワードのフィールドの名前と、フォームが投稿するアクションを取得します
  2. アクションURLへのPOSTリクエストを作成し、名前とパスワードを正しく渡します(例:name = username&password = pwd)
  3. これはHTTPSでした(正しく行うようにしてください)
  4. 応答のヘッダーにSET-COOKIEが含まれている場合は、後続のすべての要求でそのCookieを送信してください。
  5. 応答にリダイレクトがある場合は、リダイレクトに対してGETを実行し、必要に応じてCookieを送信します
  6. (リダイレクトが得られなくなるまで、#5をループし続けます)

この最後に表示される応答は、ページソースです。

これを見てください:

http://code.google.com/apis/gdata/javadoc/com/google/gdata/client/http/AuthSubUtil.html http://code.google.com/p/apex-google-data/source/browse /trunk/google_data_toolkit/src/classes/AuthSubUtil.cls

彼らのサービスで認証するためのグーグルコードのように見えます。

于 2009-09-09T18:52:42.477 に答える