wget
私はbashに初めてアクセスし、ウェブサイトのすべてのファイルを私が作業しているサーバーに転送しようとしました。しかし、私が得るのはファイルだけですindex.html
。 15分間実行しましたが、index.htmlファイルはまだダウンロード中で終了しました。ファイルの後に私のファイルをindex.html
ダウンロードできますか?
これは私が試したコードです。
$ wget --no-parent -R index.html -A "Sample" -nd --random-wait \
-r -p -e robots=off -U Mozilla --no-check-certificate \
http://somewebsite.com/hasSamples/Sample0
Sampleで始まるサブディレクトリ内のすべてのファイルをダウンロードしようとしています。私は解決策を見つけるためにインターネット上でたくさんの検索をして、この時点で私はパニックになりました。まだ正しいオプションの組み合わせが見つからないかもしれませんが、助けてくれてありがとう。コードの私の理解は次のとおりです。
--no-parent
親ディレクトリを検索しないことを意味します。-R index.html
index.html ファイルのダウンロードが拒否されたことを意味します。 「index.html*」も試しましたが、まだダウンロードされました。-A "Sample"
BashのSample*と少し似ています。-nd
ディレクトリの代わりにファイルをダウンロードすることを意味します。--random-wait
ウェブサイトがブラックリストに入らないようにしてください-r
再帰ダウンロード-p
本当に分からない-e robots=off
robots.txt ファイルを無視U Mozilla
ユーザーをMozillaのように見せると思います。- これは
--no-check-certificate
ウェブサイトに必要です。
答え1
- "example"はbashの例のように動作します*
私の読書に基づくものではありませんman wget
。
- -A acclist --accept acclist
- -R拒否リスト - 拒否リスト拒否
許可または拒否するファイル名のサフィックスまたはパターンのカンマ区切りリストを指定します。ワイルドカード文字*、?、[または]のいずれかがacclistまたはrejlistの要素に表示される場合、パターンと見なされます。サフィックスの代わりに。
したがって、ワイルドカードなしの使用法はbash globと同じです*.Sample
。
Wgetはリンクをスキャンして動作します。これがおそらくファイルをダウンロードしようとする理由ですindex.html
(内容が何であるかを言っていませんが、時間がかかります)。どこかで始める必要があります。詳しく説明するには:URLは次のとおりです。いいえファイルパス。あなたできないWebサーバーをディレクトリ階層のように検索して、「ディレクトリ内のすべてのファイルを提供してくださいfoobar
」と言います。実際のディレクトリに対応する場合、Webサーバーfoobar
(もちろんファイルパスではなくURLの一部なので、必ずしもそうではありません)可能自動的に生成されたindex.htmlリストファイルを提供するように構成されており、ファイルシステムを閲覧できるという錯覚を提供します。ただし、これはHTTPプロトコルの一部ではなく、Apacheなどのサーバーがデフォルトで使用するルールにすぎません。したがって、wget
実行された作業は、背中を検索してリンクをたどり、index.html
同じ操作を<a href=
再帰<img src=
的に実行することです。これはwgetの「再帰的」動作を意味します。 (繰り返し)リンクを再帰的に検索します。サーバー上のファイルシステムへのアクセス権がなく、サーバーはそのようなファイルシステムに関する情報を提供する必要はありません。。
.html
読み込んでクリックして必要なすべてのアイテムにアクセスできる実際のWebページがある場合は、そのアドレスから始めてを使用してください-r -np -k -p
。
答え2
ブラウザを使用してこのページに接続するとどうなりますか?
問題なくページを閲覧している場合は、何かが抜けている可能性があります。
このページでブラウザを確認している可能性があり、Mozillaは正解ではありません。以下からブラウザ文字列を選択してください。ここ(Mozillaだけでなく、文字列全体)が動作することを確認してください。
そうでない場合は、クッキーが必要な場合があります。クッキーをホームページにリンクしてwget
保存してください。次に、wget
このCookieを使用してページをダウンロードしてみてください。
--mirror
ミラーリングするには、オプションを試してください。
それでも機能しない場合は、接続とページを見てみましょう。 Firefoxのライブhttpヘッダーを追加することは非常に素晴らしいツールです。ブラウザとWebページ間の全体的な通信を見ることができます。必要なものを取得するには、wgetを使用してその動作を模倣してください。