![wget での複数のユーザー認証情報](https://rvso.com/image/36006/wget%20%E3%81%A7%E3%81%AE%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E8%AA%8D%E8%A8%BC%E6%83%85%E5%A0%B1.png)
を使用するとwget
、異なる資格情報を持つ複数のパスワード保護領域を持つ Web サイトをミラーリングするときに、複数のユーザー/パスワードのペアを指定できますか?
保護された領域が複数ある Web サイト全体をミラーリングしたいと思います。単純化した例として、次の構造を考えてみましょう。
example.com/protected_area_1/ (user=alice, password=cat)
example.com/protected_area_2/ (user=bob, password=dog)
を使用するときにwget --mirror example.com
、パラメータ--user
とを追加で指定できるようになりました--password
が、ユーザー/パスワードのペアを 1 つだけ指定した場合、 のために 2 つの保護領域のうち 1 つをダウンロードできませんでした401 Authorization Required
。
次のようなことを行う方法はありますかwget --user=alice --password=cat --user=bob --password=dog (...)
? 自然言語では:パスワードで保護された領域に遭遇した場合は、提供された資格情報をすべて順番に試してアクセスを試みてください。
答え1
これを次のように実行する必要がある場合wget
:
ユーザー名とパスワードの組み合わせの数が少なく、ダウンロードが過剰でない場合は、各組み合わせでツリー全体を繰り返し実行し (
--user
およびを使用--password
)、結果を結合できます。異なるユーザー名/パスワードの組み合わせがドメインによって異なる場合は、
wget
のオプション--ask-password
と を試してexpect
、適切なタイミングで適切な組み合わせを提供できます。
より複雑なダウンロード状況では、私は常に専用の Selenium ベースのプログラムを使用していました。このプログラムは、JavaScript を使用してページの一部を読み込む現在の方法や、wget が処理できる基本認証以外のログイン スキームを正しく処理します。