mcpField
L
lynx-web-search

lynx-web-search

github.com/zenobi-us生産性6843 回インストール今日更新
リポジトリ

lynx-web-search について

lynx-web-searchは、lynxを使ってコマンドラインからウェブ検索やページのテキスト取得を行うスキルです。専用のウェブツールがない場合のテキストベースの代替手段となり、読みやすいページ内容やソースを/tmpに保存できます。

主な機能

  1. 01複数の検索エンジンで検索
  2. 02URLから読みやすいテキストを取得
  3. 03テキスト出力を/tmpに保存
  4. 04任意でHTMLソースを保存

活用シーン

  1. 01ブラウザー自動化なしでウェブ検索
  2. 02分析や要約用にページのテキストを取得
  3. 03後で確認するページテキストやソースの保存

インストール

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

$npx skills add https://github.com/zenobi-us/dotfiles --skill lynx-web-search

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

詳細

Lynx Web Search

概要

高速なテキスト専用のフォールバックとして、ウェブ検索やページ取得に lynx を使用します。

このスキルでは、繰り返し実行できる次の2つのタスクに重点を置きます。

  1. ターミナルから検索エンジンを利用する
  2. URL を取得し、読みやすいダンプを /tmp に保存する

使用する場面

  • GUI/ブラウザーの自動操作なしで、シェルからすばやくウェブ検索したい
  • 専用のウェブツールを利用できない
  • 分析/要約用にプレーンテキストの出力が必要
  • /tmp に再現性のある成果物を保存したい

使用しない場面:

  • 操作やログインが必要な、JavaScript を多用するページ
  • ビジュアルテストや DOM の検査(ブラウザー自動化ツールを使用してください)

クイックリファレンス

検索エンジンの URL テンプレート
検索エンジンURL テンプレート
Googlehttps://www.google.com/search?q=<query>
Bravehttps://search.brave.com/search?q=<query>&source=web
Binghttps://www.bing.com/search?q=<query>
Yahoohttps://search.yahoo.com/search?p=<query>
GitHubhttps://github.com/search?q=<query>&type=repositories
Reddithttps://www.reddit.com/search/?q=<query>
Reddit(JavaScript の使用が少ないフォールバック)https://old.reddit.com/search?q=<query>
man lynx に記載されている主な lynx フラグ
  • -dump:読みやすいテキストを出力して終了する
  • -source:ソースをそのまま出力して終了する
  • -listonly:リンク一覧のみを出力する(URL の抽出に便利)
  • -accept_all_cookies:Cookie の確認を回避する
  • -useragent=...:サイトがデフォルトの動作をブロックする場合に、UA を上書きする

実装

1) 任意の検索エンジンで検索し、出力を /tmp に保存する
engine="brave"          # google|brave|bing|yahoo|github|reddit|oldreddit
query="lynx cli usage"
q=$(python - <<'PY' "$query"
import sys, urllib.parse
print(urllib.parse.quote_plus(sys.argv[1]))
PY
)

case "$engine" in
  google)    url="https://www.google.com/search?q=$q" ;;
  brave)     url="https://search.brave.com/search?q=$q&source=web" ;;
  bing)      url="https://www.bing.com/search?q=$q" ;;
  yahoo)     url="https://search.yahoo.com/search?p=$q" ;;
  github)    url="https://github.com/search?q=$q&type=repositories" ;;
  reddit)    url="https://www.reddit.com/search/?q=$q" ;;
  oldreddit) url="https://old.reddit.com/search?q=$q" ;;
  *) echo "Unknown engine: $engine" >&2; exit 2 ;;
esac

out="/tmp/lynx-search-${engine}-$(date +%Y%m%d-%H%M%S).txt"
lynx -accept_all_cookies -dump "$url" | tee "$out"
printf "\nSaved: %s\n" "$out"
2) 指定した URL を取得し、読みやすいダンプを /tmp に保存する
url="https://example.com"
out="/tmp/lynx-page-$(date +%Y%m%d-%H%M%S).txt"
lynx -accept_all_cookies -dump "$url" > "$out"
printf "Saved readable dump: %s\n" "$out"
3) オプション:生の HTML/ソースを /tmp に保存する
url="https://example.com"
out="/tmp/lynx-source-$(date +%Y%m%d-%H%M%S).html"
lynx -source "$url" > "$out"
printf "Saved source dump: %s\n" "$out"

よくある間違い

  • URL エンコードを忘れる(複数語の検索クエリの場合)→ urllib.parse.quote_plus を使用する
  • テキストモードで Google が常に使えると思い込む(ブロックされたり、JavaScript チャレンジが表示されたりすることがよくあります)
  • ブロックされた際に検索エンジンを1つしか使わない → Brave/Bing/Yahoo/GitHub/old Reddit で再試行する
  • 出力を保存しない → 追跡できるよう、必ず /tmp/lynx-*.txt に書き込む
  • lynx で JavaScript によって描画されたコンテンツを期待する → 動的なページにはブラウザー自動化を使用する

コメント