最善の解決策

最善の解決策

自分のユーザー名とパスワードでのみアクセスできるフォーラムをダウンロードしたいです。

次のことを試しました:

C:\wget.exe wget -k -m -E -p -np -R viewtopic.php*p=*,memberlist.php*,faq.php*,posting.php*,search.php*,ucp.php*,viewonline.php*,*sid*,*view=print*,*start=0* -o log.txt http://www.myforum1234.com/forum/categories/discussions

これが、私が cmd に入力するコマンドです。wget.exe をクリックすると、黒いウィンドウが表示されますが、すぐに消えます。しかし、これも正しい方法だと思います (私は Windows XP を使用しています)。

私の問題は、結果を見ると、wget はログインできなかったためフォーラムをダウンロードできなかったことが示されています。そのため、ログイン ページは表示されます (ダウンロードされます) が、それ以上は何も表示されません。コマンドを実行したときは、ログインしていました。

私は wget の専門家ではないので、コマンドが正しいかどうかわかりません。これは別の投稿からコピーしたものです。単純なものはC:\wget.exe wget http://www.theforumurl.com機能しませんでした。

編集:

私も今試してみました

C:\wget.exe wget -k -m -E -p -np -R *start=0* -o log.txt http://www.myforum.com/forum/categories/discussions

しかし、ここでも同じ問題があります。

2回目の編集最初のコメントのリンクに関して:

私は今試してみました

C:\wget.exe wget -k -m -E -p -np -R *start=0* -o log.txt http://www.myforum.com/forum/categories/discussions --post-data="username&password=1234"

しかし、また同じ問題です!

ログイン ボタンにマウスを合わせると、次の URL が表示されます。

http://www.myforum.com/user/popupLogin

これを使わなければなりませんか?

3回目の編集:

また、www. の前にユーザー名:パスワード@ を追加してみました。次のようになります。

C:\wget.exe wget -k -m -E -p -np -R  *start=0* -o log.txt http://user:[email protected]/forum/categories/

結果は同じで、ログインが機能しなかったことがわかります。

第4版:

私も試してみましたこのスレッド:

C:\wget.exe wget --save-cookies cookies.txt --post-data 'user=usern&password=passw' http://www.myforum.com/user/popupLogin

C:\wget.exe wget --load-cookies cookies.txt -p http://www.myforum.com/forum/categories/

しかし、また同じ問題が!!

第5回編集:

これで、ログイン ボタンのソース コードを分離できたと思います。

<div class="forumSignup">
          <a href="http://www.myforum.com/user/popupLogin" class="Button SignInPopup">Login</a> </div>

6回目の編集:

HTTrack でも試してみましたが、問題は同じです。ログインが機能しません。別の問題は、フォーラム自体が URL www.mywebsite.com/forum を使用しているのに、www.mywebsite.com にログインする必要があることです。たとえば、ユーザー名のようなものを使用すると、[メールアドレス]mywebsite はキャプチャされますが、フォーラムはキャプチャされません。ユーザー名を使用する場合:[メールアドレス]/forum ログインは機能せず、何もキャプチャされません。

答え1

まず第一に、名前C:\wget.exe -k -m …を繰り返さないことですwget

フォーラムへのログインは複雑に思えるので (単純なサ​​イトでも複雑になることがあります)、最善の解決策は、ブラウザでログインしてから、Cookie* を wget に渡す (ファイルに入れて使用するか--load-cookies、 で直接渡す--header "Cookie: name=value") ことです。

※ブラウザによって抽出方法が若干異なります。

答え2

Wget は<pass>@serveraddressポートとして解釈します。

ユーザー名とパスワードを指定するには、--userおよび--passwordスイッチを使用します。

wget --user username --password passw http://...

答え3

を使ってログインしてサイトをミラーリングするのは困難ですwget。 を使用するには専門知識が必要ですwget。現在、ユーザー名とパスワード、クッキー、および必要なスイッチを渡します。
追加の作業。
1. すべてが正常になるまでミラーリングを避けてください。ページを再帰的にダウンロードすると、Web サーバーが IP をブラックリストに追加するように強制します。(単一のページを保存してみてください)
2. ほとんどの Web フォーラムがダウンロード マネージャーを嫌うため、ブラウザーとして wget を偽装します。これ詳細については回答してください。

最善の解決策

この種のサイトをミラーリングする最も簡単で最善の方法は、**を使用することです。スクラップブック**. これはFirefoxプラグインです。Firefoxを起動し、サイトにログインし、右クリックして「ページを名前を付けて保存」し、ドメインでフィルタリングするだけです。これサイトを効率的にミラーリングするための回答。

答え4

ブラウザで Cookie データにアクセスできる場合 (Firefox にはオプション > プライバシーの下に独自の Cookie ブラウザがありますが、このタスクを簡単にするプラグインもあります)、フォーラムに手動でログインし、そのドメインのすべての Cookie を検索して、cookies.txt ファイルに保存すると、おそらく前のコマンドで機能するでしょう。

C:\wget.exe wget --load-cookies cookies.txt -p http://www.myforum.com/forum/categories/

一部のログイン ページは複雑すぎるため、単一のコマンド ラインでタスクを実行することはできません。

ドメイン全体のすべての Cookie を含めることを忘れないでください (「www.myforum.com」だけでなく、「myforum.com」を検索してください)

関連情報