About web-search
web-search is a script-based skill for searching the web, exploring results in depth, and crawling pages. It uses several search engines with automatic fallback and returns structured results without requiring API keys.
Key features
- 01Search across multiple engines
- 02Automatically fall back when an engine fails
- 03Return titles, URLs, and snippets
- 04Run deep searches and extract content
- 05Crawl a specified web page
Use cases
- 01Find information across search engines
- 02Research a topic and inspect page content
- 03Extract content from a known URL
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ yejinlei/ web-search-skill --skill web-searchAfter installing, type/web-searchin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
LICENSE.txt.gitignorerequirements.txtMANIFEST.inREADME.mdsetup.pyscripts/web_search.py__init__.pyDetails
From the project READMEWeb Search Skill
A powerful web search skill supporting multiple search engines without requiring API keys.
Features
- 🔍 Multi-Engine Support: Baidu (Playwright), Bing, DuckDuckGo
- 🌐 No API Key Required: Uses browser automation and web scraping
- 🔄 Smart Fallback: Automatically switches engines when one fails
- 📊 Structured Results: Returns clean search results with title, URL, and snippet
- 🚀 High Performance: Async support with Playwright browser automation
Usage
Basic Search
result = main({
"action": "search",
"query": "Python tutorial",
"num_results": 5
})
Deep Search
result = main({
"action": "deep_search",
"query": "machine learning latest research",
"num_results": 5
})
Web Page Crawling
result = main({
"action": "crawl",
"url": "https://example.com"
})
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| action | string | Yes | Operation type: "search", "deep_search", or "crawl" |
| query | string | Conditional | Search query (required for search/deep_search) |
| url | string | Conditional | Target URL (required for crawl) |
| num_results | int | No | Number of results, default 5, max 20 |
| region | string | No | Region code, default 'cn-zh' |
Output Format
Search Result
{
"success": True,
"query": "search query",
"engine": "baidu+playwright",
"num_results": 5,
"results": [
{
"title": "Result title",
"href": "https://...",
"body": "Snippet content"
}
],
"message": "Search completed"
}
Deep Search Result
{
"success": True,
"query": "search query",
"search_results": [...],
"detailed_info": {
"extracted_content": "..."
},
"message": "Deep search completed"
}
Execution
type: script script_path: scripts/web_search.py entry_point: main dependencies:
- uv>=0.1.0
- requests>=2.28.0
- baidusearch>=1.0.3
- crawl4ai>=0.8.0
- playwright>=1.40.0
Search Strategy
- Primary:
baidusearchlibrary (fastest, no browser) - Secondary: Playwright + Baidu (most reliable, bypasses anti-bot)
- Tertiary: DuckDuckGo (privacy-focused)
- Fallback: Bing (international)
Notes
- First Run: Playwright will download Chromium browser on first use (~100MB)
- Rate Limiting: Be mindful of search frequency to avoid temporary blocks
- Network: Requires internet connection
- Results: May vary based on search engine algorithms and location
Error Handling
- Returns
{"success": False, "message": "..."}on errors - Automatically retries with fallback engines
- Graceful degradation when optional dependencies are missing
Comments
Markdown supported