BIẾT A.I CHƯA?SELF HOSTING

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ạo quảng cáo hình ảnh trên Instagram và quảng cáo video TikTok từ các landing page bằng cách sử dụng browser agent Nano Banana của Google và Veo3.

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 UseSeleniumPuppeteer
Ngôn NgữPythonNhiều ngôn ngữJavaScript/Node.js
Hỗ Trợ Trình DuyệtChrome/ChromiumChrome, Firefox, Safari…Chrome/Chromium
AI IntegrationTích hợp LLMKhông cóKhông có
Học TậpDễ (natural language)Trung bìnhDễ (Node.js)
Tốc Độ Phát TriểnRất nhanhChậmNhanh
Xử Lý Lỗi Tự ĐộngCó (AI)KhôngKhông
Vision/UI UnderstandingKhôngKhông
Chi PhíMiễn phí + LLM APIMiễ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

  1. 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
  2. pip hoặc uv (để cài đặt packages)
    • uv được khuyến khích (nhanh hơn pip)
    • Cài đặt: pip install uv
  3. LLM API Key (từ một trong các nhà cung cấp)
  4. Bộ nhớ RAM tối thiểu: 4GB (khuyến nghị 8GB trở lên)
  5. 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 --version

Cài đặt Browser Use

Bước 1: Tạo thư mục dự án

mkdir browser-use-demo
cd browser-use-demo

Bướ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\activate

Hoặ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\activate

Bước 3: Cài đặt Browser Use

Sử dụng uv:

uv add browser-use
uv sync

Hoặc sử dụng pip:

pip install browser-use

Bước 4: Cài đặt Chromium Browser

uvx browser-use install

Hoặc nếu dùng pip:

python -m playwright install

Bước 5: Cài đặt LLM Provider (ví dụ: OpenAI)

pip install openai

Hoặc cho Google:

pip install google-generativeai

Bướ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.py

Cấu hình LLM

Bước 1: Lấy API Key

Cho OpenAI:

  1. Truy cập https://platform.openai.com/api/keys
  2. Tạo API key mới
  3. Copy key và lưu an toàn

Cho Google Gemini:

  1. Truy cập https://aistudio.google.com/app/apikeys
  2. Tạo API key
  3. 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-key

Bướ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.py

Ví 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 install

Lỗ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 đóng

Mẹ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ác

2. 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 session

FAQ

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:

  1. Cài đặt Browser Use theo hướng dẫn ở trên
  2. Thử các ví dụ từ bài viết này
  3. Khám phá tài liệu chính thức: https://github.com/browser-use/browser-use
  4. Tham gia cộng đồng trên GitHub để được hỗ trợ
Duy Nghiện
Hãy làm khán giả, đừng làm nhân vật chính :)

You may also like

Nhận thông báo qua email
Nhận thông báo cho
guest

0 Bình luận
Mới nhất
Cũ nhất Nhiều like nhất
Phản hồi nội tuyến
Xem tất cả bình luận