ユーザー名とパスワードのあるHTTPSウェブサイトをダウンロードするには、wgetのみを使用しますか?

ユーザー名とパスワードのあるHTTPSウェブサイトをダウンロードするには、wgetのみを使用しますか?

通常、ログインしている場合にのみ利用可能なウェブサイトを繰り返しダウンロードしようとします。

有効なユーザー名とパスワードがありますが、問題はWebインターフェースを介してログインする必要があることです。したがって、これを使用することは--user=user and --password=password役に立ちません。

wgetテキストを含むWebページのみダウンロード: 申し訳ありません。このページは利用できません。ログインするのを忘れましたか?

ダウンロードできますか?

以下のように、ログインを検索するFTP / HTTPファイルがないため、ログインページでも--user、--passwordを使用できませんman wget

--user=user
--password=password
    Specify the username user and password password for both FTP and
    HTTP file retrieval.

古典的なグラフィカルログインがすぐそこにあります。

.POSTメソッドを使用してログインしてCookieを保存しようとするwget --save-cookies coookies --keep-session-cookies --post-data='j_username=usr&j_password=pwd' 'https://idp2.civ.cvut.cz/idp/Authn/UserPassword'と、Cookieファイルが空になり、保存されたページはいくつかのエラーページです。

ウェブサイトはですhttps://idp2.civ.cvut.cz/idp/Authn/UserPassword。実際にログインhttps://progtest.fit.cvut.cz/しようとするとこのページにリダイレクトされ、ログインに成功すると以前にあったページやログイン後に行きたいページにリダイレクトされます。

ベストアンサー1

ログイン後に別のページに移動できるように、セッション情報をCookieに保存できます。

この場合、次の2つの手順でこれを実行できます。

  1. Webサイトのログインページで、オプションとwgetオプション--save-cookies mycookies.txtを使用してください。--keep-session-cookies--username--password
  2. 検索したい後続のページで使用するオプションwget--load-cookies mycookies.txt

編集する

--passwordandオプションが機能しない場合は、--usernameログインページがサーバーに送信する情報を見つけてそれを模倣する必要があります。

  • GETリクエストの場合は、wgetがインポートする必要があるアドレスにパラメータを直接追加できます(引用符やその他の特殊文字をGET正しく引用する必要があります)。 URLは次のとおりです。&=https://the_url?user=foo&pass=bar
  • 要求の場合は、必要なログイン情報とともに公開方法を使用するオプションを使用POSTできます。wget--post-data=the_needed_info

編集2

POSTwithメソッドj_usernamej_passwordsetメソッドが必要なようです。--post-data='j_username=yourusername&j_password=yourpassword選択してみてくださいwget

編集3

元のページを見ると、何が起こっているのかをよりよく理解できました。しかし、有効な資格情報がなく、望ましくないので、動作しているかどうかはわかりません。

その結果は次のとおりです。

  1. このページではCookieをhttps://progtest.fit.cvut.cz/設定しPHPSESSID、ログインオプションを提供します。
  2. ボタンをクリックすると、PHPSESSID Cookieのインポートlogin要求が送信されhttps://progtest.fit.cvut.cz/shibboleth-fit.php(使用するかどうかはわかりません)、次のようにあなたに合うように設計されたURLを使用してSSOエンジンにリダイレクトされます。https://idp2.civ.cvut.cz/idp/profile/SAML2/Redirect/SSO?SAMLRequest=SOME_VERY_LONG_AND_UNIQUE_ID
  3. SSO応答は、呼び出された新しいCookieを設定し、_idp_authn_lc_key再リダイレクトされるページ(実際のログインページ)にリダイレクトします。https://idp2.civ.cvut.cz:443/idp/AuthnEnginehttps://idp2.civ.cvut.cz:443/idp/Authn/UserPassword
  4. 資格情報を入力し、SSO応答から投稿データj_usernameとCookieを送信します。j_password
  5. ???

wget最初の4つのステップは次のように完了できます。

origin='https://progtest.fit.cvut.cz/'

# Get the PHPSESSID cookie
wget --save-cookies phpsid.cki --keep-session-cookies "$origin"

# Get the _idp_authn_lc_key cookie
wget --load-cookies phpsid.cki  --save-cookies sso.cki --keep-session-cookies --header="Referer: $origin" 'https://progtest.fit.cvut.cz/shibboleth-fit.php'

# Send your credentials
wget --load-cookies sso.cki --save-cookies auth.cki --keep-session-cookies --post-data='j_username=usr&j_password=pwd' 'https://idp2.civ.cvut.cz/idp/Authn/UserPassword'

wgetリダイレクトは完全に単独で行われるため、この場合は多くの役に立ちます。

おすすめ記事