一部の画像がダウンロードできない理由
短い答え
ダウンロードの失敗は、ほぼ常にサイト側がリクエストを拒否しているのであって、手元の環境の問題ではありません。よくある原因は4つです。サイト自身のページ以外から来たリクエストを弾く直リンク対策。短時間に集中したリクエストに対して画像ではなく認証ページを返すボット対策。すでにサーバーから削除された画像。そして一括ダウンロードを数百個のダイアログに変えてしまう Chrome 自身の保存確認。1つ目は再試行で、2つ目は間隔を延ばすことで解決します。
手作業でやる場合
画像を新しいタブで開いてそこから保存する。サイトが期待するとおりのリクエストになるので、単発のファイルならたいてい通ります。
それでも失敗する場合に残る手段はスクリーンショットですが、それは画面解像度で再エンコードされた複製であって元のファイルではありません。
それが行き詰まるところ
- どの画像が拒否されるかは、実際に試すまでページからは判別できません。
- タブごとに手作業でやり直すのでは、そもそも一括でダウンロードする意味がなくなります。
- 認証ページを返すサイトは HTTP 200 を返すため、素朴なダウンロードは画像の拡張子を持つ HTML ファイルをディスクに書き込み、失敗は誰にも気づかれません。
- スクリーンショットでは元の解像度も元の圧縮も透過情報も失われます。
ImgDown でやる場合
ステップ 1
まず「再試行」を押す
失敗した画像は赤く印が付き、「再試行」ボタンが現れます。再試行は参照元を付けない別の方法で取得し直すので、一般的な直リンク対策はこれで越えられます。失敗の大半はこの一手で片付きます。
ステップ 2
ダウンロード間隔を広げる
設定で間隔を 800ms か 1500ms に上げ、もう一度実行します。ボット対策が反応するのは短時間の集中なので、キューを遅くすることが認証ページと実際の画像との分かれ目になります。
ステップ 3
Chrome の保存確認をオフにする
Chrome の「設定 → ダウンロード」で「ダウンロード前に各ファイルの保存場所を確認する」をオフにします。オンのままだと100枚の画像は100個のダイアログになり、誤って1つ閉じればそのダウンロードは取り消されます。
ステップ 4
残った数枚は手動で保存する
ここまでやっても赤いままのものは、意図的に拒否されています。それらを新しいタブで開いて個別に保存してください——通常は一括全体ではなく数枚程度です。
関連する質問
いま開いているページで試してみてください
無料、アカウント不要。次に開くギャラリーからすぐ使えます。