web-search について
web-search は、DuckDuckGo でウェブページ、ニュース、画像、動画を検索するスキルです。オンライン情報や最新情報を使う調査向けで、各種フィルターとテキスト、Markdown、JSON 出力に対応します。
主な機能
- 01ウェブ、ニュース、画像、動画の検索
- 02期間と地域による絞り込み
- 03セーフサーチの設定
- 04画像・動画専用フィルター
- 05テキスト、Markdown、JSON 出力
- 06検索結果のファイル保存
活用シーン
- 01最新ニュースや出来事の確認
- 02画像やテーマに沿った動画の検索
- 03新しいウェブ情報を使った事実確認
- 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
実装方法
ユーザーがウェブ検索を依頼した場合:
-
検索意図を特定する:
- どの種類のコンテンツ(ウェブ、ニュース、画像、動画)が必要ですか?
- 結果の新しさはどの程度重要ですか?
- 結果はいくつ必要ですか?
- 絞り込みの要件はありますか?
-
検索パラメーターを設定する:
- 適切な検索タイプ(
--type)を選択します - 情報の新しさが重要な場合は、期間を設定します(
--time-range) - 結果数を調整します(
--max-results) - フィルターを適用します(画像サイズ、動画の長さなど)
- 適切な検索タイプ(
-
出力形式を選択する:
- すぐに読む場合はテキスト
- ドキュメント作成には Markdown
- さらに処理する場合は JSON
-
検索を実行する:
- 検索コマンドを実行します
- 結果を保存する必要がある場合は、ファイルに保存します
- すぐに確認する場合は、標準出力に表示します
-
結果を処理する:
- 必要に応じて保存したファイルを読み込みます
- 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
ベストプラクティス
- 具体的に指定する - より良い結果を得るには、明確で具体的な検索クエリを使います
- 期間フィルターを使う - 最新情報には
--time-rangeを適用します - 結果数を調整する - まず10~20件から始め、必要に応じて増やします
- 重要な検索結果を保存する - 結果を保持するには
--outputを使います - 適切なタイプを選択する - 最新ニュースにはニュース検索、一般情報にはウェブ検索を使います
- 自動化には JSON を使う - JSON 形式はプログラムで最も簡単に解析できます
- 利用規約を守る - 短時間に検索を繰り返して 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 で詳細なコマンドラインヘルプを確認できます。