mcpField
W
web-search

web-search

github.com/sundial-org生産性67390 回インストール34 週間前に更新
リポジトリ

web-search について

web-search は、DuckDuckGo でウェブページ、ニュース、画像、動画を検索するスキルです。オンライン情報や最新情報を使う調査向けで、各種フィルターとテキスト、Markdown、JSON 出力に対応します。

主な機能

  1. 01ウェブ、ニュース、画像、動画の検索
  2. 02期間と地域による絞り込み
  3. 03セーフサーチの設定
  4. 04画像・動画専用フィルター
  5. 05テキスト、Markdown、JSON 出力
  6. 06検索結果のファイル保存

活用シーン

  1. 01最新ニュースや出来事の確認
  2. 02画像やテーマに沿った動画の検索
  3. 03新しいウェブ情報を使った事実確認
  4. 04スクリプト処理用の JSON 結果収集

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sundial-org/awesome-openclaw-skills --skill web-search

インストール後、Claude Code で/web-searchを入力して読み込まれたか確認します。

同梱ファイルscripts/search.py

詳細

Web 検索

概要

DuckDuckGo の API を使って Web を検索し、Web ページ、ニュース記事、画像、動画から情報を見つけます。時間範囲、地域、安全検索のフィルタリングオプションを使い、複数の形式(テキスト、Markdown、JSON)で結果を返します。

このスキルを使用する場面

次のような依頼があったときに、このスキルを使用します。

  • 情報やリソースの Web 検索
  • オンラインで現在または最近の情報を探す
  • 特定のトピックに関するニュース記事を調べる
  • 説明やトピックを指定して画像を検索する
  • 特定のテーマに関する動画を探す
  • 最新の Web データを必要とする調査
  • Web 上の情報源を使ったファクトチェックや検証
  • トピックに関する URL やリソースを収集する

前提条件

必要な依存関係をインストールします。

pip install duckduckgo-search

このライブラリを使うと、API キーや認証なしで、DuckDuckGo の検索 API をシンプルな Python インターフェースから利用できます。

主な機能

1. 基本的な Web 検索

Web ページや情報を検索します。

python scripts/search.py "<query>"

例:

python scripts/search.py "python asyncio tutorial"

タイトル、URL、説明を含む上位 10 件の Web 検索結果を、わかりやすいテキスト形式で返します。

2. 結果数の制限

返される結果の数を指定します。

python scripts/search.py "<query>" --max-results <N>

例:

python scripts/search.py "machine learning frameworks" --max-results 20

次のような用途に便利です。

  • 結果をより網羅的に取得する(上限を増やす)
  • 結果を少なくして手早く調べる(上限を減らす)
  • 詳細さと処理時間のバランスを取る
3. 時間範囲によるフィルタリング

情報の新しさで結果をフィルタリングします。

python scripts/search.py "<query>" --time-range <d|w|m|y>

時間範囲のオプション:

  • d - 過去 1 日
  • w - 過去 1 週間
  • m - 過去 1 か月
  • y - 過去 1 年

例:

python scripts/search.py "artificial intelligence news" --time-range w

次のような用途に適しています。

  • 最近のニュースや更新情報を探す
  • 古くなったコンテンツを除外する
  • 最近の動向を追跡する
4. ニュース検索

ニュース記事に絞って検索します。

python scripts/search.py "<query>" --type news

例:

python scripts/search.py "climate change" --type news --time-range w --max-results 15

ニュースの検索結果には、次の情報が含まれます。

  • 記事のタイトル
  • 掲載元
  • 公開日
  • URL
  • 記事の概要/説明
5. 画像検索

画像を検索します。

python scripts/search.py "<query>" --type images

例:

python scripts/search.py "sunset over mountains" --type images --max-results 20

画像のフィルタリングオプション:

サイズフィルター:

python scripts/search.py "landscape photos" --type images --image-size Large

オプション:Small、Medium、Large、Wallpaper

色フィルター:

python scripts/search.py "abstract art" --type images --image-color Blue

オプション:color、Monochrome、Red、Orange、Yellow、Green、Blue、Purple、Pink、Brown、Black、Gray、Teal、White

種類フィルター:

python scripts/search.py "icons" --type images --image-type transparent

オプション:photo、clipart、gif、transparent、line

レイアウトフィルター:

python scripts/search.py "wallpapers" --type images --image-layout Wide

オプション:Square、Tall、Wide

画像の検索結果には、次の情報が含まれます。

  • 画像のタイトル
  • 画像の URL(画像への直接リンク)
  • サムネイルの URL
  • 掲載元の Web サイト
  • 寸法(幅 x 高さ)
6. 動画検索

動画を検索します。

python scripts/search.py "<query>" --type videos

例:

python scripts/search.py "python tutorial" --type videos --max-results 15

動画のフィルタリングオプション:

長さフィルター:

python scripts/search.py "cooking recipes" --type videos --video-duration short

オプション:short、medium、long

解像度フィルター:

python scripts/search.py "documentary" --type videos --video-resolution high

オプション:high、standard

動画の検索結果には、次の情報が含まれます。

  • 動画のタイトル
  • 配信者/チャンネル
  • 長さ
  • 公開日
  • 動画の URL
  • 説明
7. 地域を指定した検索

地域に応じた検索結果を取得します。

python scripts/search.py "<query>" --region <region-code>

主な地域コード:

  • us-en - アメリカ合衆国(英語)
  • uk-en - イギリス(英語)
  • ca-en - カナダ(英語)
  • au-en - オーストラリア(英語)
  • de-de - ドイツ(ドイツ語)
  • fr-fr - フランス(フランス語)
  • wt-wt - 全世界(デフォルト)

例:

python scripts/search.py "local news" --region us-en --type news
8. セーフサーチの制御

セーフサーチのフィルタリングを制御します。

python scripts/search.py "<query>" --safe-search <on|moderate|off>

オプション:

  • on - 厳格なフィルタリング
  • moderate - バランスの取れたフィルタリング(デフォルト)
  • off - フィルタリングなし

例:

python scripts/search.py "medical information" --safe-search on
9. 出力形式

結果の形式を選択します。

テキスト形式(デフォルト):

python scripts/search.py "quantum computing"

番号付きの検索結果を含む、読みやすいプレーンテキストです。

Markdown 形式:

python scripts/search.py "quantum computing" --format markdown

見出し、太字、リンクを使って整形された Markdown です。

JSON 形式:

python scripts/search.py "quantum computing" --format json

プログラムで処理するための構造化された JSON データです。

10. 結果をファイルに保存

検索結果をファイルに保存します。

python scripts/search.py "<query>" --output <file-path>

例:

python scripts/search.py "artificial intelligence" --output ai_results.txt
python scripts/search.py "AI news" --type news --format markdown --output ai_news.md
python scripts/search.py "AI research" --format json --output ai_data.json

ファイル形式は、ファイルの拡張子ではなく --format フラグによって決まります。

出力形式の例

テキスト形式
1. Page Title Here
   URL: https://example.com/page
   Brief description of the page content...

2. Another Result
   URL: https://example.com/another
   Another description...
Markdown 形式
## 1. Page Title Here

**URL:** https://example.com/page

Brief description of the page content...

## 2. Another Result

**URL:** https://example.com/another

Another description...
JSON 形式
[
  {
    "title": "Page Title Here",
    "href": "https://example.com/page",
    "body": "Brief description of the page content..."
  },
  {
    "title": "Another Result",
    "href": "https://example.com/another",
    "body": "Another description..."
  }
]

よくある使用パターン

トピックの調査

テーマについて包括的な情報を収集します:

# Get overview from web
python scripts/search.py "machine learning basics" --max-results 15 --output ml_web.txt

# Get recent news
python scripts/search.py "machine learning" --type news --time-range m --output ml_news.txt

# Find tutorial videos
python scripts/search.py "machine learning tutorial" --type videos --max-results 10 --output ml_videos.txt
最新ニュースのモニタリング

特定のトピックに関するニュースを追跡します:

python scripts/search.py "climate summit" --type news --time-range d --format markdown --output daily_climate_news.md
ビジュアルリソースの検索

条件を指定して画像を検索します:

python scripts/search.py "data visualization examples" --type images --image-type photo --image-size Large --max-results 25 --output viz_images.txt
ファクトチェック

新しい情報源を使って情報を検証します:

python scripts/search.py "specific claim to verify" --time-range w --max-results 20
学術調査

学術的なトピックに関するリソースを探します:

python scripts/search.py "quantum entanglement research" --time-range y --max-results 30 --output quantum_research.txt
市場調査

製品や企業に関する情報を収集します:

python scripts/search.py "electric vehicle market 2025" --max-results 20 --format markdown --output ev_market.md
python scripts/search.py "EV news" --type news --time-range m --output ev_news.txt

実装方法

ユーザーがウェブ検索を依頼した場合:

  1. 検索意図を特定する:

    • どの種類のコンテンツ(ウェブ、ニュース、画像、動画)が必要ですか?
    • 結果の新しさはどの程度重要ですか?
    • 結果はいくつ必要ですか?
    • 絞り込みの要件はありますか?
  2. 検索パラメーターを設定する:

    • 適切な検索タイプ(--type)を選択します
    • 情報の新しさが重要な場合は、期間を設定します(--time-range)
    • 結果数を調整します(--max-results)
    • フィルターを適用します(画像サイズ、動画の長さなど)
  3. 出力形式を選択する:

    • すぐに読む場合はテキスト
    • ドキュメント作成には Markdown
    • さらに処理する場合は JSON
  4. 検索を実行する:

    • 検索コマンドを実行します
    • 結果を保存する必要がある場合は、ファイルに保存します
    • すぐに確認する場合は、標準出力に表示します
  5. 結果を処理する:

    • 必要に応じて保存したファイルを読み込みます
    • URL または特定の情報を抽出します
    • 複数の検索結果を組み合わせます

クイックリファレンス

コマンド構文:

python scripts/search.py "<query>" [options]

基本オプション:

  • -t, --type - 検索タイプ(ウェブ、ニュース、画像、動画)
  • -n, --max-results - 最大結果数(デフォルト:10)
  • --time-range - 期間フィルター(d、w、m、y)
  • -r, --region - 地域コード(例:us-en、uk-en)
  • --safe-search - セーフサーチのレベル(on、moderate、off)
  • -f, --format - 出力形式(text、markdown、json)
  • -o, --output - ファイルに保存

画像固有のオプション:

  • --image-size - サイズフィルター(Small、Medium、Large、Wallpaper)
  • --image-color - 色フィルター
  • --image-type - タイプフィルター(photo、clipart、gif、transparent、line)
  • --image-layout - レイアウトフィルター(Square、Tall、Wide)

動画固有のオプション:

  • --video-duration - 長さのフィルター(short、medium、long)
  • --video-resolution - 解像度フィルター(high、standard)

ヘルプ全文を表示:

python scripts/search.py --help

ベストプラクティス

  1. 具体的に指定する - より良い結果を得るには、明確で具体的な検索クエリを使います
  2. 期間フィルターを使う - 最新情報には --time-range を適用します
  3. 結果数を調整する - まず10~20件から始め、必要に応じて増やします
  4. 重要な検索結果を保存する - 結果を保持するには --output を使います
  5. 適切なタイプを選択する - 最新ニュースにはニュース検索、一般情報にはウェブ検索を使います
  6. 自動化には JSON を使う - JSON 形式はプログラムで最も簡単に解析できます
  7. 利用規約を守る - 短時間に検索を繰り返して API に過剰な負荷をかけないでください

トラブルシューティング

よくある問題:

  • 「Missing required dependency」:pip install duckduckgo-search を実行します
  • 結果が見つからない:より広い検索語を試すか、期間フィルターを外します
  • タイムアウトエラー:検索サービスが一時的に利用できない可能性があります。少し待ってから再試行してください
  • レート制限:多数のリクエストを行う場合は、検索の間隔を空けます
  • 予期しない結果:DuckDuckGo の検索結果は Google と異なる場合があります。クエリを調整してみてください

制限事項:

  • 検索結果の品質は、DuckDuckGo のインデックスとアルゴリズムに左右されます
  • 高度な検索演算子(Google の site:、filetype: など)は使えません
  • 画像と動画の検索結果は、ウェブ検索より少ない場合があります
  • 結果のランキングや関連度スコアは制御できません
  • 専門的な検索には、専用の検索エンジンのほうが適している場合があります

高度なユースケース

複数の検索を組み合わせる

検索タイプを組み合わせて、包括的な情報を収集します:

# Web overview
python scripts/search.py "topic" --max-results 15 --output topic_web.txt

# Recent news
python scripts/search.py "topic" --type news --time-range w --output topic_news.txt

# Images
python scripts/search.py "topic" --type images --max-results 20 --output topic_images.txt
プログラムによる処理

自動処理には JSON 出力を使います:

python scripts/search.py "research topic" --format json --output results.json
# Then process with another script
python analyze_results.py results.json
ナレッジベースの構築

ウェブ検索結果から検索可能なドキュメントを作成します:

# Search multiple related topics
python scripts/search.py "topic1" --format markdown --output kb/topic1.md
python scripts/search.py "topic2" --format markdown --output kb/topic2.md
python scripts/search.py "topic3" --format markdown --output kb/topic3.md

リソース

scripts/search.py

DuckDuckGo 検索機能を実装するメインの検索ツールです。主な機能は次のとおりです。

  • 複数の検索タイプ - ウェブ、ニュース、画像、動画
  • 柔軟なフィルタリング - 期間、地域、セーフサーチ、検索タイプ固有のフィルター
  • 複数の出力形式 - テキスト、Markdown、JSON
  • ファイル出力 - 後で処理できるように検索結果を保存
  • 見やすいフォーマット - 必要な情報をすべて含む、人が読みやすい出力
  • エラー処理 - ネットワークエラーや検索結果が空の場合も適切に処理

このスクリプトは直接実行でき、--help で詳細なコマンドラインヘルプを確認できます。

コメント