lynx-web-search について
lynx-web-searchは、lynxを使ってコマンドラインからウェブ検索やページのテキスト取得を行うスキルです。専用のウェブツールがない場合のテキストベースの代替手段となり、読みやすいページ内容やソースを/tmpに保存できます。
主な機能
- 01複数の検索エンジンで検索
- 02URLから読みやすいテキストを取得
- 03テキスト出力を/tmpに保存
- 04任意でHTMLソースを保存
活用シーン
- 01ブラウザー自動化なしでウェブ検索
- 02分析や要約用にページのテキストを取得
- 03後で確認するページテキストやソースの保存
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zenobi-us/ dotfiles --skill lynx-web-searchインストール後、Claude Code で/lynx-web-searchを入力して読み込まれたか確認します。
詳細
Lynx Web Search
概要
高速なテキスト専用のフォールバックとして、ウェブ検索やページ取得に lynx を使用します。
このスキルでは、繰り返し実行できる次の2つのタスクに重点を置きます。
- ターミナルから検索エンジンを利用する
- URL を取得し、読みやすいダンプを
/tmpに保存する
使用する場面
- GUI/ブラウザーの自動操作なしで、シェルからすばやくウェブ検索したい
- 専用のウェブツールを利用できない
- 分析/要約用にプレーンテキストの出力が必要
/tmpに再現性のある成果物を保存したい
使用しない場面:
- 操作やログインが必要な、JavaScript を多用するページ
- ビジュアルテストや DOM の検査(ブラウザー自動化ツールを使用してください)
クイックリファレンス
検索エンジンの URL テンプレート
| 検索エンジン | URL テンプレート |
|---|---|
https://www.google.com/search?q=<query> | |
| Brave | https://search.brave.com/search?q=<query>&source=web |
| Bing | https://www.bing.com/search?q=<query> |
| Yahoo | https://search.yahoo.com/search?p=<query> |
| GitHub | https://github.com/search?q=<query>&type=repositories |
https://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 によって描画されたコンテンツを期待する → 動的なページにはブラウザー自動化を使用する
コメント
Markdown 対応