Cyotek WebCopy

導入

使用方法

上部にある[Website]に、対象とするWebサイトのアドレスを入力します。

まずScanでサイトを調査してダウンロードする対象を決定し、Copyでサイトのダウンロードを実行します。

Scan

[Website]入力欄の右にある[Scan]ボタンをクリックするとQuick Scanが実行され、サイトの構造が表示されます。ここで設定を変更するとサイトのパスの項目の色が変化し、ダウンロードから除外されることを確認できます。

[Quick Scan Settings]の設定はScanの方法であり、Copyとは無関係です。Quickly scanning a website - Cyotek WebCopy Help

ここの設定でクロールを制限しないと、サイト全体がダウンロード対象となります。

ここでの設定はメニューの【Project → Project Properties】の[General]に反映され、そこで確認と変更をできます。

Copy

[Website]入力欄の右にある[Copy]ボタンをクリックすると、ダウンロードが実行されます。

ダウンロードの一時停止や再開はできないため、十分に確認してから実行します。Downloading a website - Cyotek WebCopy Help

設定

設定値はレジストリのHKEY_CURRENT_USER\Software\Cyotek\WebCopy以下に保存されます。Managing Settings - Cyotek WebCopy Help

一部の情報は%APPDATA%\Cyotekに保存されます。

General

Download all resources

これが有効だと、外部サイトにリンクされたtext/html以外のファイルもダウンロードされるようになります。

たとえばhttp://example.com/images/sample.jpgにリンクされたファイルは、保存フォルダのimages/sample.jpgに保存されます。

Local Files

[Remap references within downloaded files]を有効にすると、ローカルのファイル間で参照できるようにリンクのパスが修正されます。これはすべてのダウンロードが完了した後に実行されるため、それまではファイルを開いても不完全な状態となっています。Remapping local files - Cyotek WebCopy Help

Rules

特定のディレクトリ以下に適用するルールを作成するならば、ScanのページでそのURLを右クリックし[Exclude]を指定します。

Compareでルールを適用する対象を指定します。What is a rule? - Cyotek WebCopy Help

 
Path folder/products
Query String sort=name&order=asc
Path and Query String folder/products?sort=name&order=asc
   

Expressionは正規表現で指定します。

このルールはダウンロードから除外するだけであり、Speed Limitsが指定されているときには、ルールに一致してもリクエスト頻度の制限を受けます。

Speed Limits

リクエストの頻度を制限できます。設定は1秒または1分ごとのリクエスト数を整数で指定するため、1秒に1回未満とするには1分ごとで指定します。Setting speed limits - Cyotek WebCopy Help

[Enforce limit checks]を有効にすることで、制限を強制できます。これが無効だと処理に成功したときだけ制限されるため、アクセス過多により失敗したときは即座にリクエストしてしまい、失敗し続けることになります。Version 1.0.9.1 - Cyotek WebCopy Revision History - Copy websites locally for offline browsing • Cyotek

User Agent

これを未設定だと「The remote server is returning a 403 response for the selected user agent. Do you want to change this a default agent that the server accepts?」のように返されることがあり、これを受け入れると[CyotekWebCopy/1.9 CyotekHTTP/6.4]のような文字列が使用されます。

Advanced

Cookies

[Add]をクリックし、Cookie PropertiesのValueに必要なすべてのCookieを入力します。

個別に指定するのではなく、Set-Cookieヘッダでリクエストするときの形式とします。つまりNAME=VALUEで名前と値を対にして、複数のCookieはセミコロンで区切ります。簡単にはブラウザの開発者ツールで、要求ヘッダーのCookiesの値をコピーして用います。Cookies - Cyotek WebCopy Help

トラブル対処法

ダウンロードに失敗する

[Result]タブのHTTP Statusを確認し、そのページへアクセスしてみます。"Too many access"のように理由を説明してもらえるならば、Speed Limitsで制限します。

Cloudflare

Cloudflareによって制限されているならばブラウザでアクセスし、アクセスに成功したときのCookieとUger-Agentをそこからコピーして設定します。Bypass Cloudflare Anti-scraping with Cyotek WebCopy + Fiddler - Rabbit Unknown

複数のダウンロードサイトから、まとめて検索