コンテンツを表示する前に、ユーザーの年齢を確認する必要があるWebサイトのローカルコピーが必要です。複雑なフォームはなく、チェックボックスと「はい、私は大人です」と書かれたボタンだけで済みます。試してみましたが、wget
成功しませんでした。このスプラッシュ画面のみをダウンロードし、それ以上はダウンロードしませんでした。 Httrackも失敗しました。
クッキーファイルに確認情報が保存されていることがわかっており、どんなものか調べたようです。だから私は次のようにコピーしました。cookie.txt エクスポートchromium拡張子を.txtとして保存し、wget
オプションを使用して再試行しましたが、--load-cookies
まだ機能しません。
このようなウェブサイトをどのようにダウンロードしますか?私はこれを誤用しているのでしょうかwget
、それとももっと良い方法がありますか?
編集する:
さて、DownThemAllがそれをやっているようです。最後に、私もwget
成功しました。
wget -mpkrl 0 http://example.com
たぶん-rl 0
それは私が以前に見逃していたかもしれません。
ページソースを調べたところ、リフレッシュ/リダイレクトが関係なく、サブページが正しくダウンロードされ、確認画面がページiframe
上部に1つしかないため、簡単なスクリプトで削除できることがわかりました。
(この特別な場合は、最終的にクッキーを台無しにする必要はありませんので、回答として投稿しません。)
答え1
サイトの設定方法によって異なり、すべてのサイトがクッキーを使用しているわけではありません。いくつかはphp-sessionsのようなものを使うことができますが、wgetがそれを直接処理できるかどうかはわかりません。セッションID(この部分は通常、アドレスバーのブラウザによって隠されているか、ログイン時に一度だけ使用されます)が見つかった場合は、そのID(URL +セッションID)をwgetの開始URLとして使用できます。
クッキーの話に戻って...しかし、私も同様のことをしなければならないので、いくつかのヒント...
一部のウェブサイトでは一時クッキーを使用しています。今回のセッションの最後です。これらは一般的にいいえcookie.txt/cookies-databaseに保存されるため、すべてのCookieエクスポートプログラムがCookieをエクスポートするわけではありません。ファイル/データベースからエクスポートする場合はそうではありません。ブラウザからエクスポートする場合は、「メモリ」(サイトから))、良いです。 Personally, I've found the "cookie.txt export" extension for the Chrome-browser the best, as it saves *all* cookies (including temps) from just the active tab.
(まあ、実際にはクッキーをテキストとして表示するので、タグを付けてコピーして直接ファイルに保存する必要があります)データベースを簡単にエクスポートできるように永続的なCookieに変換します(ただし、年齢確認には役立ちません)。
cookie.txtファイルを保存したら、いくつかの編集を実行することをお勧めします。有効期限を増やすか、一時的なクッキーを永続的なクッキーとして編集することもできます(単純な「スイッチ」と考えてください)。関連のないCookie(広告など)を削除することもできます。
wgetが動作している間にブラウザウィンドウを開いたままにしておくと(おそらくページを更新するか、時々参照することがあります)、wgetが完了する前にセッションが期限切れにならないようにすることができます。
ブラウザ拡張もあります...私はFirefoxの「Down-them-all」が好きです。この機能を使用すると、コンテンツをダウンロードできます(wgetよりもインタラクティブですが)。現在のページへのリンクのリストが表示されます。保存したいリンクや画像を確認し、オプションでリンクをたどる深さを確認してください。始める前にログインまたは年齢を確認すると、Down-them-allはブラウザにログインしてチェックインし、手動でダウンロードできるものをすべてダウンロードできます。名前変更モードと番号付けを試してください。すべてのページを一様に保存します。そうしないと、名前の競合が発生する可能性があります(上書きする前に尋ねますが)。
頑張ってください!