SE::DuckDuckGo - DuckDuckGo検索結果スクレイパー

DuckDuckGoスクレイパーの概要
DuckDuckGo検索結果のスクレイパーです。DuckDuckGoスクレイパーを使用することで、後続の処理に利用可能な大規模なリンクベースを取得できます。DuckDuckGoの検索バーに入力するのと同様のクエリを使用でき、検索演算子(intitle, inurl, siteなど)もサポートしています。詳細は公式ページ DuckDuckGo Search Syntax を参照してください。
A-Parserの機能により、DuckDuckGoスクレイパーのスクレイピング設定を保存して再利用(プリセット)したり、スクレイピングのスケジュールを設定したりすることが可能です。自動クエリ増殖、ファイルからのサブクエリ置換、英数字の組み合わせやリストの総当たりを使用して、最大限の検索結果を取得できます。
内蔵された強力なテンプレートエンジンTemplate Toolkitにより、結果に独自のロジックを適用し、JSON, SQL, CSVを含む様々な形式で、必要な構造のままデータを保存できます。
収集データ
- 検索結果のリンク、アンカー、スニペット (
$serp.$i.link,$serp.$i.anchor,$serp.$i.snippet) - 広告枠のリンク、表示リンク、アンカー、スニペット、ドメイン、広告掲載順位 (
$ads.$i.domain,$ads.$i.link,$ads.$i.visiblelink,$ads.$i.anchor,$ads.$i.snippet,$ads.$i.position,$ads.$i.page) - 関連キーワードのリスト (
$related.$i.key)

機能
- すべてのDuckDuckGo検索演算子(intitle:, inurl:, site:など)をサポート。検索演算子の詳細は公式ページDuckDuckGo Search Syntaxを参照
- ページ数の指定 (1から10まで)
- オーガニック検索結果に加えて、広告ブロックと関連キーワードを収集
- 選択した地域 (Region オプション) でのスクレイピングと言語の指定 (Language オプション) が可能
- セーフサーチの有効化 (Safe search オプション) と期間による結果の制限 (Serp time オプション) が可能
- 検索ページと検索データリクエストに対する個別の HTTP/2 有効化
- DuckDuckGoがHTTP経由で検索結果を返さない場合、内蔵ブラウザへの自動切り替え
ユースケース
- A-Poster, XRumer, AllSubmitterなどのためのリンクベース収集
- サイトのインデックス状況の確認
- サイトのバックリンク(言及)検索
- その他、DuckDuckGoのスクレイピングを必要とするあらゆるケース
クエリ
クエリには検索フレーズを指定します。例:
Football
テスト
site:a-parser.com
スクレイパー site:a-parser.com
test -site:tests.com
IoT filetype:pdf
クエリ置換
内蔵マクロを使用してクエリを増殖させることができます。例えば、非常に大規模なフォーラムのベースを取得したい場合、複数の言語で主要なクエリを指定します:
forum
フォーラム
foro
论坛
クエリ形式でaからzzzzまでの文字の総当たりを指定します。この手法により、検索結果を最大限にローテーションさせ、多くの新しいユニークな結果を得ることができます:
$query {az:a:zzzz}
このマクロは、元の検索クエリ1つにつき475254個の追加クエリを生成し、合計で4 x 475254 = 1901016個の検索クエリになります。膨大な数字ですが、A-Parserにとっては全く問題ありません。毎分2000クエリの速度であれば、このタスクは約16時間で完了します。
演算子の使用
クエリ形式で検索演算子を使用できます。これにより、リスト内の各クエリに自動的に演算子が追加されます:
site:$query
結果出力例
A-Parserは、内蔵のテンプレートエンジンTemplate Toolkitにより、柔軟な結果フォーマットをサポートしています。これにより、任意の形式や、CSV、JSONなどの構造化された形式で結果を出力できます。
リンク一覧のエクスポート
リンク + アンカー + スニペット(順位付き)
リンク、アンカー、スニペットをCSVテーブルに出力
関連キーワードの保存
広告ブロックの出力
SQL形式での保存
結果をJSONにダンプ
結果の処理
A-Parserではスクレイピング中に直接結果を処理できます。このセクションでは、DuckDuckGoスクレイパーで最も一般的なケースを紹介します。
リンクの重複排除
ドメインごとのリンク重複排除
ドメインの抽出
アンカーとスニペットからのタグ削除
含有によるリンクのフィルタリング
設定可能な項目
| パラメータ名 | デフォルト値 | 説明 |
|---|---|---|
| Pages count | 5 | スクレイピングするページ数(1から10)、検索結果に次のページがない場合は途中で終了することがあります |
| Region | US (English) | 検索結果のリージョンを選択 |
| Language | English (United States) | 検索結果の言語を選択 |
| Safe search | Moderate | セーフサーチ: Strict、Moderate または Off |
| Serp time | Any time | 検索期間: 24時間以内、1週間以内、1ヶ月以内、1年以内、または全期間 |
| Use HTTP/2 | ☐ | 検索ページの要求時に HTTP/1.1 の代わりに HTTP/2 を使用するかどうかを指定 |
| Use HTTP/2 for links | ☐ | 検索結果データの要求時も同様 |
| User agent | Chrome 150, Windows | ページ要求時の User-Agent ヘッダー。ブラウザでも使用されます。空のままにすると、最新バージョンの Firefox の User-Agent が使用されます |
| Get first link with browser pages count | 5 | 同時に使用できる内蔵ブラウザのページ数。ブラウザは検索ページの取得にのみ必要です。DuckDuckGo が HTTP 経由でデータを返さなかった場合、次の試行はブラウザ経由で実行されます |