File size: 2,215 Bytes
d7b3d84
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
"""
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))