通常、ログインしている場合にのみ利用可能なウェブサイトを繰り返しダウンロードしようとします。
有効なユーザー名とパスワードがありますが、問題は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つの手順でこれを実行できます。
- Webサイトのログインページで、オプションと
wget
オプション--save-cookies mycookies.txt
を使用してください。--keep-session-cookies
--username
--password
- 検索したい後続のページで使用するオプション
wget
。--load-cookies mycookies.txt
編集する
--password
andオプションが機能しない場合は、--username
ログインページがサーバーに送信する情報を見つけてそれを模倣する必要があります。
GET
リクエストの場合は、wgetがインポートする必要があるアドレスにパラメータを直接追加できます(引用符やその他の特殊文字をGET
正しく引用する必要があります)。 URLは次のとおりです。&
=
https://the_url?user=foo&pass=bar
- 要求の場合は、必要なログイン情報とともに公開方法を使用するオプションを使用
POST
できます。wget
--post-data=the_needed_info
編集2
POST
withメソッドj_username
とj_password
setメソッドが必要なようです。--post-data='j_username=yourusername&j_password=yourpassword
選択してみてくださいwget
。
編集3
元のページを見ると、何が起こっているのかをよりよく理解できました。しかし、有効な資格情報がなく、望ましくないので、動作しているかどうかはわかりません。
その結果は次のとおりです。
- このページではCookieを
https://progtest.fit.cvut.cz/
設定しPHPSESSID
、ログインオプションを提供します。 - ボタンをクリックすると、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
- SSO応答は、呼び出された新しいCookieを設定し、
_idp_authn_lc_key
再リダイレクトされるページ(実際のログインページ)にリダイレクトします。https://idp2.civ.cvut.cz:443/idp/AuthnEngine
https://idp2.civ.cvut.cz:443/idp/Authn/UserPassword
- 資格情報を入力し、SSO応答から投稿データ
j_username
とCookieを送信します。j_password
- ???
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
リダイレクトは完全に単独で行われるため、この場合は多くの役に立ちます。