it-swarm-ja.com

このウェブページをWgetでダウンロードするにはどうすればよいですか?

Webページをダウンロードしたい http://forum.ubuntu-it.org/ が、ユーザー名とパスワードが必要です。だから私はこれを使用しました:

wget --save-cookies cookies.txt --post-data 'user=goyamy&passwrd=mypassword' http://forum.ubuntu-it.org/

しかし、それは機能しません!どうして?

6
xRobot

これは、サーバーがセッションCookieを使用して認証を追跡していることが原因である可能性があります。オプションを追加します--save-cookies一緒にCookieを強制的に保存します。したがって、コマンドは次のようになります。

wget --keep-session-cookies --save-cookies cookies.txt --post-data 'user=goyamy&passwrd=mypassword' http://forum.ubuntu-it.org/

私はそれをテストしていません。

2
Kibet

Chrome(v19)からCookieをダンプするスクリプトの例を次に示します。

#!/bin/bash -e
#
# Quick and dirty script which dumps all Chrome cookies in 
# the specified SQLite database to stdout in Netscape format.

COOKIE_FILE='~/.config/google-chrome/Default/Cookies'

echo -e '.mode tabs \n select Host_key, httponly, path, secure, ' \
  'expires_utc/10000000, name, value from cookies;' |
  sqlite3 $COOKIE_FILE |
  sed -e 's/\t0\t/\tFALSE\t/g ' -e 's/\t1\t/\tTRUE\t/g'
6
user137906

Colinが示唆しているように、このサイトは認証にセッションCookieを使用していますが、ログインできないため、彼の回答は完全には機能しません。

Wgetが最初のリクエストでサーバーに渡すためのCookieが必要です。 wgetの--load-cookiesオプションを使用します( ここに記載 )。これは、FirefoxおよびChromeが現在使用しているsqliteデータベース形式ではなく、古いcookies.txtファイル形式を使用することに注意してください。

これが私がすることです:

  1. FirefoxまたはChromeを使用して、サイトにアクセスしてログインします(ブラウザがCookieを保存するように設定されていることを確認してください)
  2. ブラウザを終了します
  3. あなたのクッキーファイルを見つけてください
  4. Cookies.txt形式に変換します(これについては以下の注を参照してください)
  5. wget --load-cookies cookies.txt http://forum.ubuntu-it.org/

Sqlite形式からcookies.txtに変換するオプションには、 python script またはより単純なsqliteスクリプト(前のリンクのコメント内)が含まれますが、インストールするのが最も簡単な場合があります this Firefox拡張機能

0
Doug Harris