web-dev-qa-db-ja.com

wgetを使用する場合のCookieのフォーマット?

wgetcookies.txtのNetscape形式は何ですか?ログインが必要なウェブサイトをミラーリングする必要があります。私はChrome拡張機能を使用して、その形式でCookieを返します。cookies.txtに保存し、wgetコマンドでインポートしますが、使用しないと、コンテンツをダウンロードするだけです。まったくログインしていないようです。

どんな助けにも感謝します。

35
Zarko Djuric

形式は、manページに記載されているNetscape形式で、この形式は次のとおりです。

Netscapeのcookies.txtファイルのレイアウトでは、各行に名前と値のペアが1つずつ含まれています。 cookies.txtファイルの例には、次のようなエントリがある場合があります。

.netscape.com TRUE / FALSE 946684799 NETSCAPE_ID 100103

各行は、格納されている1つの情報を表します。 タブが各フィールドの間に挿入されます。

左から右に、各フィールドが表すものは次のとおりです。

domain-変数を読み取ることができるANDを作成したドメイン。

flag-特定のドメイン内のすべてのマシンが変数にアクセスできるかどうかを示すTRUE/FALSE値。この値は、ドメインに設定した値に応じて、ブラウザによって自動的に設定されます。

path-変数が有効であるドメイン内のパス。

secure-変数にアクセスするためにドメインとのセキュア接続が必要かどうかを示すTRUE/FALSE値。

expiration-変数が期限切れになるUNIX時間。 UNIX時間は、1970年1月1日00:00:00 GMTからの秒数として定義されます。

name-変数の名前。

value-変数の値。

( " The Unofficial Cookie FAQ "より、明確にするために編集)

51
ETL

Wgetのcookieを取得する1つの方法は、wgetの--keep-session-cookiesオプションを使用することです。

例えば ​​:

wget --keep-session-cookies --save-cookies cookies.txt "http://MYSITE/?__login=USER&__password=PASS"

?__login etcは、ミラーリングしようとしているWebサイトによって異なります。認証フォームの動作を確認する必要があるかもしれません。

それからあなたは使うことができます:

wget --mirror --load-cookies cookies.txt http://MYSITE/
4
Arthur Lutz

各データ行のNetscape Cookieファイル形式は上記のとおりですが、完全なファイル形式で必要な次のようなヘッダー行がない限り、HTTP::Cookies::Netscapeで読み込むことはできません。

# Netscape HTTP Cookie File

またはこれ:

# HTTP Cookie File
2
Phil Goetz