Crawler
Crawler はサイトのページをたどり、そこで見つけたファイルを取得します。このページでは、Crawler が個別に知っているサイト、それ以外の場所で読むページの種類、どこまで行ってよいかと何を残すか、ブラウザーを使うとき、サイトの扱い方、実行の前に確認するページを扱います。
個別に知っているサイト
いくつかのサイトには、Crawler のレシピがあります。サイトがファイルをどこに置いているか、そしてそれをどうページ送りしてたどるかを記したものです。こうしたサイトではウィザードが Crawler を選び、ページの種類については何も尋ねません。
| サイト | Crawler がそこで取得するもの |
|---|---|
| 500px | 写真家、人気の写真などのフィード、ギャラリー、フォトストーリー、または写真 1 枚。長辺は最大 2048 ピクセル |
| Bing Images | 画像検索の結果 |
| Flickr | フォトストリーム、アルバム、お気に入り、グループプール、タグ、Explore、写真 1 枚、または検索。オリジナルは作者がダウンロードを許可している場合だけで、それ以外はある中で最大のサイズ |
| Google 画像検索 | 画像検索の結果 |
| IMDb | 映画、人物、またはギャラリー |
| サブレディット、または投稿 |
Bing Images と Google 画像検索は、ブラウザーを通して読みます。Google 画像検索では、実行の前に検索のページが開き、目を通せるようになっています。実行の前に確認するページを参照してください。
IMDb では、ウィザードが「画像をダウンロードする」と「動画をダウンロードする」を尋ねます。IMDb が渡す動画は 100 本までです。また「IMDb はデータの利用について条件を定めています。」と表示され、「読みました」にチェックを入れるまでプロジェクトは作成できません。
Reddit では、ウィザードに「Reddit のアプリケーション ID」が入力済みの状態で表示されます。Reddit は登録されたアプリケーションにしか応答しません。その制限に達したら、reddit.com/prefs/apps で自分のアプリケーションを「installed app」として登録し、その ID を「Reddit のアプリケーション ID」に入力します。
その他のページ
個別に知らないサイトでは、Crawler のカードに「どのページでも動きますが、このサイトについての個別の知識はありません」と表示されます。Crawler を選ぶと、ウィザードは「ファイルはどこから来ますか?」と尋ねます。あらかじめ選ばれているものはありません。そのページが何なのかを知っているのは、あなただけだからです。
| 選択肢 | 意味 |
|---|---|
| このページだけ | 指定したアドレスからリンクされているファイルだけで、その先には進みません |
| ギャラリーまたはアルバム | 画像がひとまとまり置かれているページ |
| フォーラムのスレッド | 1つのトピック。投稿の添付ファイルと画像も含みます |
| サイト全体、またはその一部 | 既定では、指定したアドレスとその下にあるものだけ |
次に「ファイルの種類」で、何を「ダウンロード」するかを尋ねます。選べるのは「画像」(既定でチェックが入っています)、「動画」、「音声」、「文書」、「アーカイブ」です。種類がアドレスからもサイトの応答からもわからないファイルは、それでも取得されます。
後述の「どこまで行ってよいか」のほかに、ウィザードが尋ねることはありません。それぞれの選択肢の残りの設定は、プロジェクトの「サイトの設定」にあります。
どこまで行ってよいか
「サイト全体、またはその一部」では、ウィザードは「どこまで行ってよいか」も尋ねます。狭い範囲から広い範囲へ順に並び、選んだ行のパターンに当てはまるものはすべてクロールの対象になります。https://example.com/gallery/7/ なら、行は example.com/gallery/7/*、example.com/gallery/*、example.com/*、*.example.com/*(サブドメインを含むサイト全体)です。
残りは、プロジェクトの「サイトの設定」の「アドレス」にあります。
- 追加のアドレス -
site.com/gallery/*のようなアドレスパターンを、1 行に1つずつ書きます。これに一致するリンクもクロールの対象になります。ウィザードで選んだ行は、最初の行としてここに残ります。 - 例外 - どんな経路でそこへ導かれても、クロールが行かないアドレスのパターンです。上のアドレスより優先されます。
- 開始地点からの歩数 - クロールがアドレスからどこまで進んでよいかです。たどるリンク1つにつき 1 歩で、既定は 3、最大は 20 です。同じ一覧の別のページには歩数がかからず、ファイルにもかかりません。
- 外部リンク - クロールの対象から外へ出るリンクの扱いです。「無視する」、既定の「ファイルだけ取得する」、「ページをたどってファイルも取得する」のいずれかです。
- 許可する外部アドレス - クロールが外へ出てよい行き先です。既定の
*は、どこでもよいという意味です。 - どのアドレスがファイルか -
site.com/get-image/* = picturesのようなルールを、1 行に1つずつ書きます。画像を返すスクリプトや、拡張子のないダウンロードリンクのためのものです。 - たどるためのルール - リンクに対する独自の条件で、「次のときは行かない」または「次のときだけ行く」として指定します。
「フォルダー」にある「サイト自身のフォルダー構成を保つ」は、すべてをサイトと同じ構成で保存します(まずホスト、次にアドレスのフォルダー)。既定ではオフで、すべてが同じ場所に入ります。
何を残すか
プロジェクトの「サイトの設定」の「フィルター」には、次の項目があります。
- 「最小サイズ」と「最大サイズ」は、バイト単位です。0 は制限なしを意味します。サイトがサイズを示さなかったファイルは取得されます。「フォーラムのスレッド」では、最小サイズは初めから 20480 バイトに設定されています。投稿の中では、アバターやスマイリー、ランクのバッジも普通の画像だからです。
- 「最小の幅」と「最小の高さ」は、ピクセル単位です。画像の縦横の大きさはファイルの中に書かれているため、これは取得した後で判断されます。条件に合わない画像は削除され、ジャーナルにそのことが記録されます。
- 残すためのルール - ファイルに対する独自の条件で、「次のときは取得しない」として指定します。
「このページだけ」では、「フィルター」に「どのアドレスがファイルか」もあります。そのページからは何もたどらないので、サイトの応答でしか種類がわからないアドレスは、一度もリクエストされません。
「ギャラリーまたはアルバム」では、「ページ送り」に「1つの一覧のページ数」があります。同じ一覧のページをいくつたどるかの設定です。既定の 0 はすべてのページを意味し、アルバムには合っていますが、終わりのないフィードには合いません。
ブラウザーを使うとき
サイトによってはページをスクリプトで描画するため、ブラウザーなしではそこに見つかるものが何もありません。プロジェクトの「サイトの設定」の「ブラウザー」にある「ブラウザーを使う」は、「自動で判断する」、「はい」、「いいえ」のいずれかです。判断を任せると、Crawler は各サイトの最初のページを両方の方法で読み、多く見つかったほうを採用します。どちらにしたかは、両方の数とともにジャーナルに記録されます。ブラウザーは数十倍遅くなります。
ページから何も得られなかったときは、ジャーナルに「… では何も見つかりませんでした。このページにはブラウザーが必要かもしれません」と記録されます。
マナー
プロジェクトの「プラグインの設定」にある「マナー」は、Crawler がサイトをどう扱うかを決めます。
- リクエストの間隔(秒) - 1 回の実行の中で、行き先がどのサイトであっても、リクエストとリクエストのあいだに置く休止です。既定は 1、最大は 60 です。短いほど、サイトがリクエストを拒否し始めたり、あなたを締め出したりしやすくなります。0 にするのは、IP アドレスをアクセス禁止にされるいちばんの近道です。実行が保つペースを参照してください。
- ページを保存する - 読んだページをそれぞれ保存し、レシピエディターがサイトに再びアクセスせずに、それらのページで実行を繰り返せるようにします。既定でオンです。
- レシピを使う - Crawler が個別に知っているサイトでは、そのサイトのレシピに従います。サイトを通常の方法でたどるには、オフにします。既定でオンです。
- 画像ホストを見分ける - 画像ホストへのリンクを、手前に 1 段階挟んだ画像として読みます。ホストがページを変えて、画像の代わりに広告が届くようなら、オフにするとよいでしょう。既定でオンです。
Crawler は、すべてのサイトを合わせて同時に2つのファイルを取得します。サイトから速度を落とすよう求められるとそれに従い、ジャーナルに「… から速度を落とすよう求められたので、緩めます。秒数: …」と記録されます。
実行の前に確認するページ
サイトによっては、先に手作業で何かをする必要があります。ログインする、確認を通過する、検索を絞り込む、といったことです。同じく「マナー」にある「実行の前にページを表示する」で、開始ページをいつ開くかを決めます。
- しない - 実行がすぐに始まります。
- サイトが必要とするとき - 既定です。Google 画像検索のように、人の操作が必要だとレシピに書かれているサイトで、ページが開きます。
- 常に - プロジェクトのすべてのアドレスでページが開きます。パターンの場合は、その最初のアドレスで 1 回だけ開きます。
ページは「ダウンロードを始める前に確認してください」というウィンドウで開き、待機します。サイトが求めることを済ませてから、「続ける」を押します。実行は最後にたどり着いたところから始まるので、検索なら検索語も設定したフィルターもそのまま残ります。「キャンセル」で、実行は始まる前に止まります。
ウィザードの最後のステップで「このサイトには先にログインが必要です」にチェックを入れると、「常に」に設定されます。
パーサーを直す
NeoDownloader のウィンドウで、プロジェクトの「プロパティ」タブにあるカードに「パーサーを直す」が表示されます。これを使うと、プロジェクトの最後の実行を読み込んだレシピエディターが、何も見つからなくなったステップで開きます。このエディターは試験的なものです。開く前に NeoDownloader は「レシピエディターは未完成です」と警告し、エディターでは実行を修復しきれない場合があると伝えます。