Spaces:
Sleeping
Sleeping
| """ | |
| Simple Search API Example | |
| This example shows how to use the Browser Use API to search and extract | |
| content from multiple websites based on a query. | |
| Usage: | |
| # Copy this function and customize the parameters | |
| result = await simple_search("your search query", max_websites=5, depth=2) | |
| """ | |
| import asyncio | |
| import os | |
| import aiohttp | |
| from dotenv import load_dotenv | |
| # Load environment variables | |
| load_dotenv() | |
| async def simple_search(query: str, max_websites: int = 5, depth: int = 2): | |
| # Validate API key exists | |
| api_key = os.getenv('BROWSER_USE_API_KEY') | |
| if not api_key: | |
| print('β Error: BROWSER_USE_API_KEY environment variable is not set.') | |
| print('Please set your API key: export BROWSER_USE_API_KEY="your_api_key_here"') | |
| return None | |
| payload = {'query': query, 'max_websites': max_websites, 'depth': depth} | |
| headers = {'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json'} | |
| print('Testing Simple Search API...') | |
| print(f'Query: {query}') | |
| print(f'Max websites: {max_websites}') | |
| print(f'Depth: {depth}') | |
| print('-' * 50) | |
| try: | |
| async with aiohttp.ClientSession() as session: | |
| async with session.post( | |
| 'https://api.browser-use.com/api/v1/simple-search', | |
| json=payload, | |
| headers=headers, | |
| timeout=aiohttp.ClientTimeout(total=300), | |
| ) as response: | |
| if response.status == 200: | |
| result = await response.json() | |
| print('β Success!') | |
| print(f'Results: {len(result.get("results", []))} websites processed') | |
| for i, item in enumerate(result.get('results', [])[:2], 1): | |
| print(f'\n{i}. {item.get("url", "N/A")}') | |
| content = item.get('content', '') | |
| print(f' Content: {content}') | |
| return result | |
| else: | |
| error_text = await response.text() | |
| print(f'β Error {response.status}: {error_text}') | |
| return None | |
| except Exception as e: | |
| print(f'β Exception: {str(e)}') | |
| return None | |
| if __name__ == '__main__': | |
| # Example 1: Basic search | |
| asyncio.run(simple_search('latest AI news')) | |
| # Example 2: Custom parameters | |
| # asyncio.run(simple_search("python web scraping", max_websites=3, depth=3)) | |
| # Example 3: Research query | |
| # asyncio.run(simple_search("climate change solutions 2024", max_websites=7, depth=2)) | |