私は基本的にHTMLページ、画像、サウンドで構成されたWebサイトをサーバーに運営しています。
このサーバーのパスワードを忘れたので、すべてをそこに保存する必要があります。ページを1つずつ見てすべての内容を保存できますが、サイトのページは100ページを超えています。
私はOSXを使用しています。を使ってみましたwget
が、サーバーからブロックされているようです。
このコンテンツを取得するために使用できる他の方法はありますか?
答え1
サーバーがwgetをブロックしている場合は、httpヘッダーの「User-agent:」フィールドに基づいてブロックする可能性が高くなります。なぜなら、それが最初にwgetについて知る唯一の方法だからです。また、IPをブロックする可能性があります。この場合、他のソフトウェアを使用することは役に立たないか、一連の要求速度に基づいて自動化を識別するいくつかの計画があります(実際の人は3.2秒で100ページを閲覧しないためです) )。私は誰かがこれをすることを聞いたことがありませんが、可能です。
wgetを遅くする方法は聞いたことがありませんが、ユーザーエージェントフィールドをなりすます方法はあります。
wget --user-agent=""
マニュアルページによると、「User-agent:」は必須ではなく、完全に削除されます。サーバーがこれが気に入らない場合は、--user-agent="Mozilla/5.0"
どちらが十分に良いか試してみてください。
もちろん、「サーバーがブロックされていると思う」理由をよりよく説明すると役に立ちます。何を言ったのか、それとも時間が過ぎたのでしょうか?
答え2
普通に使うhttrack
サイトからWebコンテンツをダウンロード/ミラーリングするために使用されます。
$ httrack http://2011.example.com -K -w -O . -%v --robots=0 -c1 %e0
実行したら、ローカルおよびナビゲーション可能なディレクトリ構造を取得します。たとえば、
$ ls -l
total 304
-rw-r--r-- 1 saml saml 4243 Aug 17 10:20 backblue.gif
-rw-r--r-- 1 saml saml 828 Aug 17 10:20 fade.gif
drwx------ 3 saml saml 4096 Aug 17 10:20 hts-cache
-rw-rw-r-- 1 saml saml 233 Aug 17 10:20 hts-in_progress.lock
-rw-rw-r-- 1 saml saml 1517 Aug 17 10:20 hts-log.txt
-rw------- 1 saml saml 271920 Aug 17 10:22 hts-nohup.out
-rw-r--r-- 1 saml saml 5141 Aug 17 10:20 index.html
drwxr-xr-x 10 saml saml 4096 Aug 17 10:21 2011.example.com
ダウンロードすると、次の種類の出力が表示されます。
Bytes saved: 21,89KiB Links scanned: 12/45 (+4)
Time: 2s Files written: 4
Transfer rate: 2,65KiB/s (2,65KiB/s) Files updated: 1
Active connections: 1 Errors: 7
Current job: parsing HTML file (57%)
request - 2011.example.com/cgi-bin/hostnames.pl 0B / 8,00KiB
バックグラウンドで実行または一時停止した後に再起動できます。これはその能力の氷山の一角に過ぎません。ダウンロードを設定し、ダウンロードの進行状況を監視するためのGUIもあります。
についてたくさんありますhttrack
ウェブサイトそしてグーグルした。