mirror of
https://github.com/browser-use/browser-use
synced 2026-05-06 17:52:15 +02:00
73 lines
2.1 KiB
Python
73 lines
2.1 KiB
Python
"""
|
|
Search URL API Example
|
|
|
|
This example shows how to use the Browser Use API to extract specific
|
|
content from a given URL based on your query.
|
|
|
|
Usage:
|
|
# Copy this function and customize the parameters
|
|
result = await search_url("https://example.com", "what to find", depth=2)
|
|
"""
|
|
|
|
import asyncio
|
|
import os
|
|
|
|
import aiohttp
|
|
from dotenv import load_dotenv
|
|
|
|
# Load environment variables
|
|
load_dotenv()
|
|
|
|
|
|
async def search_url(url: str, query: str, 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 = {'url': url, 'query': query, 'depth': depth}
|
|
|
|
headers = {'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json'}
|
|
|
|
print('Testing Search URL API...')
|
|
print(f'URL: {url}')
|
|
print(f'Query: {query}')
|
|
print(f'Depth: {depth}')
|
|
print('-' * 50)
|
|
|
|
try:
|
|
async with aiohttp.ClientSession() as session:
|
|
async with session.post(
|
|
'https://api.browser-use.com/api/v1/search-url',
|
|
json=payload,
|
|
headers=headers,
|
|
timeout=aiohttp.ClientTimeout(total=300),
|
|
) as response:
|
|
if response.status == 200:
|
|
result = await response.json()
|
|
print('✅ Success!')
|
|
print(f'URL processed: {result.get("url", "N/A")}')
|
|
content = result.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: Extract pricing info
|
|
asyncio.run(search_url('https://browser-use.com/#pricing', 'Find pricing information for Browser Use'))
|
|
|
|
# Example 2: News article analysis
|
|
# asyncio.run(search_url("https://techcrunch.com", "latest startup funding news", depth=3))
|
|
|
|
# Example 3: Product research
|
|
# asyncio.run(search_url("https://github.com/browser-use/browser-use", "installation instructions", depth=2))
|