Files
liqiang b119135836
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
2026-08-20 13:12:50 +00:00

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))