360 Secure SkillHub
360 安全技能中心

Free Web Search Js

这是一款无需API密钥的网页搜索工具,核心功能包括:自动根据IP检测地域,适配国内Bing(Playwright防反爬)或国际DDG搜索,可指定结果数量,支持自动抓取页面内容,也能单独获取指定URL的内容,具备智能去重、浏览器 daemon 加速等优化。适用于实时搜索、事实核查、新闻及教程文档查找等场景,输入关键词或URL,可设置地域、结果数等参数,输出搜索结果及抓取内容。

ucsdzehualiu
ucsdzehualiu
热度 60.80
最近更新 2026-06-22 15:29:35
分类:搜索依赖:代码执行 / 联网浏览搜索应用场景:自动化脚本 / 研究

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add free-web-search-js
Metadata
name
free-web-search-js
description
Web search & content fetching via Playwright + HTTP — zero API keys. Searches Bing CN (domestic) or DDG (international), auto-fetches top page contents. For real-time search, fact-checking, news, tutorials, documentation lookup.
version
29.1.0
license
MIT
author
free-web-search-js
trigger_keywords
["search","find","look up","搜索","查一下","找一下"]
tools
[{"name":"search","description":"Search + auto-fetch; Bing CN via Playwright, DDG via HTTP","script":"scripts/search.js","parameters":{"query":{"type":"string","description":"Search query","required":true},"max":{"type":"integer","description":"Max results 1-30, default 10","required":false},"region":{"type":"string","description":"Region: auto/cn/intl, defaults to auto (IP detection)","required":false}}},{"name":"fetch","description":"Fetch page content by URL, HTTP first with headed fallback","script":"scripts/fetch.js","parameters":{"urls":{"type":"string","description":"URLs to fetch, space-separated","required":true},"max-len":{"type":"integer","description":"Max chars per page, default 12000","required":false}}}]

free-web-search-js

Pure search — no rewriting, no filtering, noise handled by the AI. Uses real browser automation (Playwright) for Bing CN anti-bot, with HTTP fallback for international queries. Zero API keys required.

Quick start

# Search (auto-fetches top 3 page contents)
node scripts/search.js "silver price"
node scripts/search.js "how to deploy docker" --max=5
node scripts/search.js "xxx" --region=cn
node scripts/search.js "xxx" --fetch=5         # fetch top 5
node scripts/search.js "xxx" --no-fetch        # search only

# Fetch specific URLs
node scripts/fetch.js "https://example.com/page1" "https://example.com/page2"

Architecture

Domestic (CN IP):
  Playwright headless → Bing CN → home page for cookie → search box submit
  → 0 results? fallback to DDG HTML
  → auto-fetch top N page contents

International:
  Pure HTTP → DDG HTML parse
  → fetch fails? fallback to Playwright request
  → DDG empty? fallback to Bing
  → auto-fetch top N page contents

Install

All dependencies are installed upfront by the setup script. The skill never runs npm install or pip install at runtime. This avoids audit flags and supply-chain risks.

Prerequisites

Dependency Purpose Size
Node.js >= 18 Runtime —
cheerio HTML parsing small
commander CLI arg parsing small
iconv-lite GBK charset conversion small
playwright Browser automation ~50 MB
Chromium (Playwright) Browser engine for Bing search + headed fetch ~150 MB

One-command setup

# Linux / macOS
bash scripts/setup.sh

# Windows
powershell -File scripts/setup.ps1

The scripts auto-detect region and use npmmirror.com mirrors inside China for faster downloads.

Manual install

cd skills/free-web-search-js
npm install
npx playwright install chromium    # ~150 MB

# Verify
node scripts/check-env.js

If you already have Chrome/Chromium installed:

export CHROMIUM_EXECUTABLE_PATH="/path/to/chrome"
node scripts/check-env.js

check-env.js will confirm whether the provided executable is usable.

Environment variables

Variable Purpose
CHROMIUM_EXECUTABLE_PATH Path to system Chrome/Chromium, skips 150 MB download
PLAYWRIGHT_DOWNLOAD_HOST Mirror for Chromium download (auto-set by setup script)
BROWSER_DAEMON_IDLE_MS Daemon idle timeout in ms (default 600000 = 10 min)

Search engines

Engine Method Region Notes
Bing CN Playwright search box submit Domestic Visits home page first for cookie, then types into search box
DDG Playwright search box submit International Full browser automation

Strategy

Region Search Fetch
Domestic Bing CN, fallback DDG Auto-fetch top 3
International DDG HTML, fallback Playwright request; DDG empty→Bing Auto-fetch top 3

IP detection

On each search, three probes run in parallel — first responder wins:

Probe Service Logic
1 myip.ipip.net / cip.cc Reachable from China
2 ipinfo.io / ipapi.co International
3 cn.bing.com Reachable → likely CN
Fallback — Defaults to domestic

Override with --region=cn or --region=intl if your proxy causes misdetection.

Fetch mode

After search, auto-fetches the top N results (default 3).

Tier Method Speed Notes
1 Lightweight HTTP + cheerio Fast No browser launch
2 Playwright headed Slower Full JS rendering

Tier 1 enhancements:

  • JSON API response detection with structured content extraction
  • JSON-LD (<script type="application/ld+json">) articleBody/description
  • __NEXT_DATA__ embedded data extraction
  • Meta tag fallback (og:description / description)
  • Auto GBK charset detection & conversion

Deduplication

Smart dedup: domain + path stem (ignores www/m subdomains, tracking params, trailing slash, .html suffix). Bing redirect URLs (bing.com/ck/) auto-decoded.

Browser daemon (optional, ~70% faster)

Avoid 1.5s+ browser launch overhead by reusing a persistent Chromium instance:

node scripts/browser-daemon.js            # Start (run with & or as background job)
node scripts/browser-daemon.js --status   # Show status
node scripts/browser-daemon.js --stop     # Stop

The daemon auto-exits after 10 minutes of inactivity (configurable via BROWSER_DAEMON_IDLE_MS). Activity is tracked via a .browser-heartbeat file that search.js and fetch.js touch on each connection. The daemon checks the heartbeat every 60 seconds.

Verification & troubleshooting

cd skills/free-web-search-js
node scripts/check-env.js
node scripts/search.js "OpenClaw" --max 2 --region cn --fetch 0
node scripts/search.js "OpenClaw" --max 2 --region intl --fetch 0

Common issues:

  • node_modules not found → run npm install
  • Executable doesn't exist ... → run bash scripts/setup.sh or set CHROMIUM_EXECUTABLE_PATH
  • browserType.launch ... closed → headless+no-sandbox is default; run node scripts/check-env.js to diagnose
  • 0 search results → try --region=cn / --region=intl, or --fetch 0 to test search alone

Privacy & network

  • Searches connect to Bing CN / DDG HTML / Sogou directly from the skill's runtime — no intermediate proxy
  • The daemon heartbeat file (.browser-heartbeat) and endpoint file (.browser-endpoint) are written to the skill root directory
  • No analytics, no telemetry, no third-party logging beyond the search engine's own server logs
  • Headed warm-up fetches: Cookie warm-up for Bing uses a headed browser context to obtain session cookies from the search engine home page; no cookies are persisted to disk between sessions

Known limitations

  • First domestic search slower: Chromium cold start takes 3–6s; daemon avoids this
  • Bing CN instant answers: Weather/calculator cards don't use li.b_algo, return 0 results
  • Sogou HTTP unstable: No cookie, easily blocked by anti-crawl
  • JS-required pages: HTTP tier returns empty for SPA pages — headed tier catches them
  • Region-specific sites: Some domestic sites time out from international IPs
  • Proxy interference: IP detection may misclassify behind proxies — use --region to override
  • DDG blocked in China: DDG HTML is not reachable from mainland China; domestic strategy avoids it