クエリのフォーマット
Query format (クエリ形式) - テンプレートを使用して置換を追加し、クエリを必要な形式にフォーマットできます。各クエリに適用されます。
クエリ形式

- 1番目のスクレイパーのクエリ形式
- 2番目のスクレイパーのクエリ形式
- 共通クエリ形式
テンプレートを指定する方法は2つあります:
- 共通クエリ形式:最初に処理され、置換をサポートします
- 各スクレイパーのクエリ形式:特定のスクレイパーに固有の形式を設定できます
スクリーンショットの例を見てみましょう。クエリとして次のようなドメインリストのファイルを使用すると仮定します:
google.com
a-parser.com
yandex.ru
共通クエリ形式が次のように設定されている場合:
http://$query
各元のクエリ(ドメイン)の前に文字列 http:// が追加され、クエリは google.com -> http://google.com に変換されます。
1番目のスクレイパーのクエリ形式が変更されていない場合、そのスクレイパーはクエリ http://google.com をスクレイピングします。
2番目のスクレイパーのクエリ形式が次のようになっている場合:
site:$query
このスクレイパーのクエリは次のように変換されます: http://google.com -> site:http://google.com
クエリ内のテンプレート
クエリ形式ではテンプレートエンジン Template Toolkitが完全にサポートされており、以下の変数が利用可能です:
$query- 共通結果形式でフォーマットされた後のクエリ$query.num- クエリの連番$query.lvl- Parse to level または Parse all results オプション使用時のクエリのネストレベル$query.orig- フォーマット前の元のクエリ$query.first- Parse to level または Parse all results オプション使用時の最初のクエリ$query.prev- 前のレベルのクエリを表示します。
HTML::LinkExtractor、$tools.query.add、およびJSスクレイパーの this.query.add で動作します。- クエリビルダーで作成されたすべての変数
置換マクロ
共通クエリ形式は以下のマクロをサポートしています:
| マクロ | 説明 | 例 |
|---|---|---|
| {az:START:END} | 英数字・記号シーケンスの置換。START に開始シーケンス、END に終了シーケンスを指定します。END の長さは START 以上である必要があります。END の末尾の文字は、START の開始文字よりも(アルファベット順で)後である必要があります。任意の UTF-8 文字シーケンスを使用できます。 | {az:a:z} - a から z までのすべての文字を置換 (a, b, c, ..., x, z)。 {az:aaa:zzz} - aaa から zzz までのすべての文字を置換 (aaa, aab, aac, ..., zzx, zzz)。 {az:a:zz} - a から zz までのすべての文字を置換 (a, b, c, ... aa, ab, ..., zx, zz)。 {az:00:99} - 00 から 99 までのすべての数値を置換 (00, 01, 02, ..., 98, 99)。 {az:а:яяя} - а から яяя までのすべてのキリル文字を置換 (а, б, ... аа, аб, ... яяю, яяя) |
| {each:WORD1,WORD2,...} | 指定された単語 WORD1, WORD2 などの置換。長さの制限はありません。 | {each:green,blue,red,black} - 単語 green, blue, red, black を置換。 {each:,buy,sell} - 空の単語、次に buy と sell を置換 |
| {subs:NAME} | queries/subs/ フォルダ内のファイルからの追加単語の置換。NAME には拡張子 .txt を除いたファイル名を指定します。 | {subs:zones} - ファイル queries/subs/zones.txt 内のすべての行を置換 |
| {num:START:END} | 指定された範囲内の数値を反復します。START に開始値、END に終了値を指定します。小数をサポートします。 | {num:1:1000} - 1 から 1000 までのすべての数値を置換 (1, 2, 3 ..., 999, 1000) |
| {num:START:END:STEP} | 指定された範囲内の数値を、指定されたステップで反復します。START に開始値、END に終了値、STEP にステップを指定します。小数をサポートします。 | {num:0:1000:10} - 0 から 1000 まで 10 ステップですべての数値を置換 (0, 10, 20 ..., 990, 1000) |
| {num:END:START} | 指定された範囲内の数値を逆順で反復します。END に終了値、START に開始値を指定します。小数をサポートします。 | {num:1000:1} - 1000 から 1 までのすべての数値を置換 (1000, 999, 998, ..., 2, 1) |
| {num:END:START:STEP} | 指定された範囲内の数値を逆順で、指定されたステップで反復します。END に終了値、START に開始値、STEP にステップを指定します。小数をサポートします。 | {num:1000:1:10} - 1000 から 1 まで 10 ステップですべての数値を置換 (1000, 990, 980, ..., 10, 1) |
⏩ 動画:置換マクロ
この動画では以下を解説しています:
- ページ遷移やスクレイパー
Maps::Google での座標反復の例におけるマクロ {num} - クエリ数と結果を増やすための inurl: を使用したスクレイピングを例にした
{az}マクロ - フレーズ生成のためのサジェストスクレイピングを例にした
{each}マクロ
置換マクロの組み合わせ
置換マクロは組み合わせることができます。複合的な例:
$query site:{subs:zones} {az:aa:zz}
スクレイピングクエリの1つが viagra であり、queries/subs/zones.txt ファイルに com, net, org というゾーンリストがある場合、次のような組み合わせのセットがスクレイピングに送られます:
viagra site:com ab
...
viagra site:net jj
...
viagra site:eek.rg zz
総クエリ数は、可能な組み合わせの乗算に対応します:
1 クエリ (viagra) x 3 ゾーン ({subs:zones}) x 676 文字バリエーション ({az:aa:zz}) = 2028 クエリ