Browser Use – Công cụ AI tự động hóa trình duyệt mã nguồn mở
Browser Use là một công cụ mã nguồn mở (open-source) trên GitHub cho phép bạn tự động hóa trình duyệt web bằng trí tuệ nhân tạo (AI). Nó được thiết kế để làm cho các trang web trở nên “dễ tiếp cận” cho các tác nhân AI, giúp bạn tự động hóa các tác vụ phức tạp mà không cần phải viết code trực tiếp tương tác với HTML hoặc DOM.
Theo đó, Browser Use hoạt động bằng cách:
- Kết nối LLM (Large Language Model) như ChatGPT, Claude, hoặc Gemini với trình duyệt
- Phân tích giao diện người dùng (UI) của trang web bằng vision (nhìn) và HTML extraction
- Thực hiện hành động tự động: nhấp nút, điền form, scroll, chuyển trang
- Xử lý lỗi thông minh: Tự động phát hiện và sửa lỗi khi xảy ra vấn đề
Nói một cách đơn giản, Browser Use giống như một trợ lý AI bạn có thể dạy làm các tác vụ web, và nó sẽ tự động hoàn thành chúng.
Tại sao Browser Use khác biệt?
Browser Use kết hợp AI vision với browser automation, tức là nó không chỉ nhấp vào các phần tử dựa trên ID hoặc class (như Selenium), mà còn có thể hiểu nội dung, nhìn vào hình ảnh, và đưa ra quyết định thông minh dựa trên những gì nó thấy trên màn hình.
Ví dụ thực tế
Thay vì viết code phức tạp như:
driver.find_element(By.ID, "search-box").send_keys("Python")
driver.find_element(By.CSS_SELECTOR, ".search-btn").click()
results = driver.find_elements(By.CLASS_NAME, "result")Bạn chỉ cần nói với Browser Use:
task = "Tìm kiếm 'Python' trên Google và cho tôi 5 kết quả đầu tiên"Nó sẽ tự động làm mọi thứ!
Tại sao nên sử dụng Browser Use
So sánh: Browser Use vs các công cụ khác
| Tiêu Chí | Browser Use | Selenium | Puppeteer |
|---|---|---|---|
| Ngôn Ngữ | Python | Nhiều ngôn ngữ | JavaScript/Node.js |
| Hỗ Trợ Trình Duyệt | Chrome/Chromium | Chrome, Firefox, Safari… | Chrome/Chromium |
| AI Integration | Tích hợp LLM | Không có | Không có |
| Học Tập | Dễ (natural language) | Trung bình | Dễ (Node.js) |
| Tốc Độ Phát Triển | Rất nhanh | Chậm | Nhanh |
| Xử Lý Lỗi Tự Động | Có (AI) | Không | Không |
| Vision/UI Understanding | Có | Không | Không |
| Chi Phí | Miễn phí + LLM API | Miễn phí | Miễn phí |
Những trường hợp sử dụng lý tưởng
Browser Use hoàn hảo cho:
- Tự động hóa quy trình phức tạp: Điền form, đăng nhập, xử lý multi-step workflows
- Web scraping thông minh: Lấy dữ liệu từ các trang web dynammic một cách dễ dàng
- Kiểm thử tự động: Chạy test E2E mà không cần viết selector lặp lại
- Quản lý dữ liệu: Đồng bộ hóa dữ liệu giữa các nền tảng khác nhau
- Tìm kiếm thông minh: Lấy giá sản phẩm, so sánh, theo dõi biến động
- Tự động hóa tài khoản: Xử lý hàng loạt tác vụ tài khoản, quản lý inbox
- Trợ lý ảo: Xây dựng bot có khả năng hiểu và tương tác với web thực
Yêu cầu hệ thống
Trước khi bắt đầu, đảm bảo bạn có:
Yêu cầu bắt buộc
- Python 3.11 hoặc cao hơn
- Windows: Tải từ python.org
- macOS:
brew install [email protected] - Linux (Ubuntu):
sudo apt install python3.11 python3.11-venv
- pip hoặc uv (để cài đặt packages)
- uv được khuyến khích (nhanh hơn pip)
- Cài đặt:
pip install uv
- LLM API Key (từ một trong các nhà cung cấp)
- OpenAI (ChatGPT): https://platform.openai.com/
- Google (Gemini): https://aistudio.google.com/
- Browser Use Cloud: https://browser-use.com/ (tặng $10 free)
- Hoặc chạy local LLM với Ollama
- Bộ nhớ RAM tối thiểu: 4GB (khuyến nghị 8GB trở lên)
- Kết nối Internet: Cần thiết để kết nối LLM API
Kiểm tra cài đặt
python --version # Phải là 3.11+
pip --versionCài đặt Browser Use
Bước 1: Tạo thư mục dự án
mkdir browser-use-demo
cd browser-use-demoBước 2: Tạo Virtual Environment
Sử dụng uv (khuyến nghị):
uv venv
source .venv/bin/activate # macOS/Linux
# hoặc trên Windows:
.venv\Scripts\activateHoặc sử dụng venv thông thường:
python -m venv venv
source venv/bin/activate # macOS/Linux
# hoặc trên Windows:
venv\Scripts\activateBước 3: Cài đặt Browser Use
Sử dụng uv:
uv add browser-use
uv syncHoặc sử dụng pip:
pip install browser-useBước 4: Cài đặt Chromium Browser
uvx browser-use installHoặc nếu dùng pip:
python -m playwright installBước 5: Cài đặt LLM Provider (ví dụ: OpenAI)
pip install openaiHoặc cho Google:
pip install google-generativeaiBước 6: Kiểm tra cài đặt
Tạo file test.py:
from browser_use import Agent, Browser
async def test():
browser = Browser()
print("✓ Browser Use cài đặt thành công!")
import asyncio
asyncio.run(test())Chạy:
python test.pyCấu hình LLM
Bước 1: Lấy API Key
Cho OpenAI:
- Truy cập https://platform.openai.com/api/keys
- Tạo API key mới
- Copy key và lưu an toàn
Cho Google Gemini:
- Truy cập https://aistudio.google.com/app/apikeys
- Tạo API key
- Copy key
Bước 2: Tạo File .env
Tạo file .env trong thư mục dự án:
# .env file
# Cho OpenAI
OPENAI_API_KEY=sk-your-api-key-here
# Cho Google Gemini
GOOGLE_API_KEY=your-gemini-api-key-here
# Cho Browser Use Cloud
BROWSER_USE_API_KEY=your-browser-use-api-keyBước 3: Load biến môi trường
Thêm vào script Python:
from dotenv import load_dotenv
import os
load_dotenv()
openai_api_key = os.getenv("OPENAI_API_KEY")Bước 4: Khởi tạo LLM
Với OpenAI:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4o", # hoặc "gpt-4-turbo", "gpt-3.5-turbo"
temperature=0.7
)Với Google Gemini:
from langchain_google_genai import ChatGoogleGenerativeAI
llm = ChatGoogleGenerativeAI(
model="gemini-pro",
temperature=0.7
)Với Browser Use LLM (tối ưu nhất):
from browser_use import ChatBrowserUse
llm = ChatBrowserUse()Ví dụ sử dụng cơ bản
Ví dụ 1: Tìm kiếm trên Google
Tạo file google_search.py:
import asyncio
from browser_use import Agent, Browser
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
load_dotenv()
async def search_google():
browser = Browser()
llm = ChatOpenAI(model="gpt-4o")
agent = Agent(
task="Tìm kiếm 'Python programming' trên Google và cho tôi tiêu đề của 3 kết quả đầu tiên",
llm=llm,
browser=browser
)
result = await agent.run()
print("Kết quả:", result)
asyncio.run(search_google())Chạy:
python google_search.pyVí dụ 2: Kiểm tra giá sản phẩm
Tạo file price_check.py:
import asyncio
from browser_use import Agent, Browser
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
load_dotenv()
async def check_price():
browser = Browser()
llm = ChatOpenAI(model="gpt-4o")
agent = Agent(
task="Truy cập Amazon, tìm kiếm 'laptop Dell XPS 13', và cho tôi giá hiện tại và rating sản phẩm",
llm=llm,
browser=browser
)
result = await agent.run()
print("Giá và rating:", result)
asyncio.run(check_price())Ví dụ 3: Lấy tiêu đề trang web
Tạo file get_title.py:
import asyncio
from browser_use import Agent, Browser
from browser_use import ChatBrowserUse
async def get_page_title():
browser = Browser()
# Sử dụng LLM tối ưu của Browser Use
llm = ChatBrowserUse()
agent = Agent(
task="Truy cập wikipedia.org/wiki/Artificial_intelligence và cho tôi tiêu đề của trang",
llm=llm,
browser=browser
)
result = await agent.run()
print("Tiêu đề trang:", result)
await browser.close()
asyncio.run(get_page_title())Ví dụ nâng cao
Ví dụ 4: Điền form tự động
Tạo file form_fill.py:
import asyncio
from browser_use import Agent, Browser
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
load_dotenv()
async def fill_form():
browser = Browser()
llm = ChatOpenAI(model="gpt-4o")
agent = Agent(
task="""
Truy cập https://example.com/form
Điền thông tin:
- Tên: Nguyễn Văn A
- Email: [email protected]
- Tin nhắn: 'Hello, đây là test tự động'
Nhấp nút Submit
""",
llm=llm,
browser=browser
)
result = await agent.run()
print("Form đã được điền:", result)
await browser.close()
asyncio.run(fill_form())Ví dụ 5: Web Scraping đa trang
Tạo file multi_page_scrape.py:
import asyncio
from browser_use import Agent, Browser
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
load_dotenv()
async def scrape_products():
browser = Browser()
llm = ChatOpenAI(model="gpt-4o")
agent = Agent(
task="""
Truy cập https://example-ecommerce.com
Lấy danh sách tất cả sản phẩm với thông tin:
- Tên sản phẩm
- Giá
- Rating
Kiểm tra cả trang tiếp theo nếu có
Trả về kết quả dưới dạng JSON
""",
llm=llm,
browser=browser
)
result = await agent.run()
print("Dữ liệu sản phẩm:", result)
await browser.close()
asyncio.run(scrape_products())Ví dụ 6: Tài khoản & Authentication
Tạo file login_example.py:
import asyncio
from browser_use import Agent, Browser, BrowserConfig
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
load_dotenv()
async def login_workflow():
# Sử dụng Chrome profile với saved logins
config = BrowserConfig(
# Sử dụng Chrome profile hiện tại (nếu có saved logins)
chrome_user_data_dir="/path/to/chrome/profile"
)
browser = Browser(config=config)
llm = ChatOpenAI(model="gpt-4o")
agent = Agent(
task="""
Truy cập https://twitter.com
Nếu đã đăng nhập, cho tôi tên người dùng
Nếu chưa, đăng nhập bằng email của bạn
""",
llm=llm,
browser=browser
)
result = await agent.run()
print("Kết quả:", result)
await browser.close()
asyncio.run(login_workflow())Xử lý lỗi phổ biến
Lỗi 1: “API Key không hợp lệ”
Nguyên nhân: API key sai hoặc hết hạn
Giải pháp:
# Kiểm tra API key
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
print("❌ API key không được tìm thấy!")
print("✓ Hãy thêm vào file .env")
else:
print("✓ API key tồn tại")Lỗi 2: “Chromium not found”
Nguyên nhân: Chưa cài đặt Chromium
Giải pháp:
python -m playwright install chromium
# hoặc
uvx browser-use installLỗi 3: “Task timeout”
Nguyên nhân: Tác vụ mất quá lâu
Giải pháp:
from browser_use import BrowserConfig
config = BrowserConfig(
disable_security=False,
headless=True,
# Tăng timeout (miligiây)
timeout=120000 # 2 phút
)
browser = Browser(config=config)Lỗi 4: “Rate limit exceeded”
Nguyên nhân: Gọi API quá nhanh
Giải pháp:
import time
# Thêm delay giữa các request
await agent.run()
time.sleep(5) # Chờ 5 giây trước request tiếp theo
await agent.run()Lỗi 5: “Memory error”
Nguyên nhân: Dùng quá nhiều bộ nhớ
Giải pháp:
# Đóng browser sau mỗi tác vụ
await browser.close()
# Hoặc sử dụng context manager
from browser_use import Browser
async with Browser() as browser:
agent = Agent(task="...", llm=llm, browser=browser)
await agent.run()
# Browser tự động đóngMẹo tối ưu hóa
1. Chọn LLM phù hợp
# ✓ Nhanh nhất cho automation
from browser_use import ChatBrowserUse
llm = ChatBrowserUse() # Tối ưu cho browser tasks
# Nếu cần tính năng khác
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o", temperature=0.3) # Temperature thấp = chính xác2. Sử dụng Headless Mode
from browser_use import BrowserConfig
config = BrowserConfig(headless=True) # Không hiển thị cửa sổ
browser = Browser(config=config)3. Tìm kiếm & xác minh
# Hãy cụ thể trong task
task_good = "Tìm giá của iPhone 15 Pro Max trên Amazon.com và trả về giá + rating"
task_bad = "Tìm giá iPhone"
# Hãy yêu cầu định dạng rõ ràng
task = """
Scrape dữ liệu và trả về JSON như sau:
{
"name": "tên sản phẩm",
"price": "giá",
"rating": "rating"
}
"""4. Batch Processing
import asyncio
async def process_tasks(tasks):
results = []
for task in tasks:
agent = Agent(task=task, llm=llm, browser=browser)
result = await agent.run()
results.append(result)
await asyncio.sleep(2) # Delay giữa các task
return results
tasks = [
"Tìm giá sản phẩm X",
"Tìm giá sản phẩm Y",
"Tìm giá sản phẩm Z"
]
results = await process_tasks(tasks)5. Error handling tốt
import asyncio
async def safe_agent_run(task):
browser = Browser()
try:
llm = ChatOpenAI(model="gpt-4o")
agent = Agent(task=task, llm=llm, browser=browser)
result = await asyncio.wait_for(agent.run(), timeout=60)
return result
except asyncio.TimeoutError:
print("❌ Task timeout!")
return None
except Exception as e:
print(f"❌ Lỗi: {e}")
return None
finally:
await browser.close()6. Lưu & tái sử dụng sessions
# Lưu cookie/session
from browser_use import BrowserConfig
config = BrowserConfig(
chrome_user_data_dir="./chrome_profile"
)
browser = Browser(config=config)
# Lần chạy tiếp theo sẽ tái sử dụng login sessionFAQ
Q: Browser Use có miễn phí không?
A: Có, mã nguồn mở hoàn toàn miễn phí. Bạn chỉ trả phí cho LLM API (như ChatGPT).
Q: Tôi cần cấp phép để sử dụng thương mại không?
A: Không, Browser Use có giấy phép MIT, có thể dùng thương mại tự do.
Q: Có thể chạy local LLM không?
A: Có, sử dụng Ollama hoặc LM Studio kết hợp với LangChain.
Q: Tốc độ thực hiện như thế nào?
A: Phụ thuộc vào LLM và tác vụ, thường 10-30 giây cho một tác vụ phức tạp.
Q: Có thể dùng cho production không?
A: Có, nhưng cần thiết lập error handling, logging, và monitoring tốt.
Browser Use là một công cụ mạnh mẽ và dễ sử dụng cho bất kỳ ai cần tự động hóa các tác vụ web. Nó kết hợp sức mạnh của AI với browser automation, tạo ra một giải pháp linh hoạt và thông minh.
Những điểm chính:
- Dễ dàng sử dụng: Viết tác vụ bằng ngôn ngữ tự nhiên, không cần viết selector phức tạp
- Thông minh: AI hiểu UI, xử lý lỗi tự động, và thích ứng với thay đổi
- Miễn phí: Mã nguồn mở, chỉ trả phí LLM API (hoặc chạy local)
- Linh hoạt: Hỗ trợ nhiều LLM (OpenAI, Google, Browser Use Cloud…)
- Nhanh: Phát triển automation nhanh hơn 10x so với Selenium
Bước tiếp theo:
- Cài đặt Browser Use theo hướng dẫn ở trên
- Thử các ví dụ từ bài viết này
- Khám phá tài liệu chính thức: https://github.com/browser-use/browser-use
- Tham gia cộng đồng trên GitHub để được hỗ trợ








