Web 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