Sử dụng kỹ năng Trình duyệt tác nhân để tự động đăng nhập vào GitHub và truy xuất các dự án được gắn dấu sao của người dùng hiện đang đăng nhập, được sắp xếp theo số sao. Chứa các bước thực hiện đầy đủ, ghi chú chính và khắc phục sự cố.
# Sử dụng Trình duyệt tác nhân để tìm nạp các dự án được gắn dấu sao GitHub
## Mục tiêu
Sử dụng kỹ năng Trình duyệt tác nhân để đăng nhập vào GitHub và truy xuất các dự án được gắn dấu sao của người dùng hiện đang đăng nhập, được sắp xếp theo số sao.
## Các Bước Thực Hiện (Tuân theo thứ tự)
1. **Khởi chạy Trình duyệt và Mở Trang chủ GitHub**
```bash
agent-browser --headed --profile "%HOMEPATH%\.agent-browser\chrome-win64\chrome-profiles\github" open https://github.com && agent-browser wait --load networkidle
```
2. **Nhận thông tin người dùng đã đăng nhập hiện tại**
```bash
agent-browser snapshot -i
# Find the user avatar or username link in the top-right corner to confirm login status
# Extract the username of the currently logged-in user from the page
```
3. **Điều hướng đến Tab Sao của người dùng hiện tại**
```bash
# Construct URL: https://github.com/{username}?tab=stars
agent-browser open https://github.com/{username}?tab=stars && agent-browser wait --load networkidle
```
4. **Sắp xếp theo số sao (Hầu hết sao xếp trước)**
```bash
agent-browser snapshot -i # First get the latest snapshot to find the sort button
agent-browser click @e_sort_button # Click the sort button
agent-browser wait --load networkidle
# Select "Most stars" from the dropdown options
```
5. **Truy xuất và ghi lại thông tin dự án**
```bash
agent-browser snapshot -i
# Extract project name, description, stars, and forks information
```
## Ghi chú quan trọng
### 1. Vấn đề về quy trình Daemon
- Nếu bạn thấy "daemon đã chạy" nghĩa là trình duyệt đang chạy
- **Quan trọng:** Khi daemon đang chạy, các tham số `--headed` và `--profile` sẽ bị bỏ qua và trình duyệt sẽ tiếp tục ở chế độ chạy hiện tại
- Bạn có thể tiến hành các lệnh tiếp theo mà không cần mở lại
- Để khởi động lại ở chế độ head, trước tiên bạn phải thực thi: `agent-browser close`, sau đó sử dụng tham số `--headed` để mở lại
### 2. Bản chất động của tài liệu tham khảo
- Tham chiếu phần tử (@e1, @e2, v.v.) thay đổi sau mỗi lần sửa đổi trang
- Bạn phải thực thi `snapshot -i` trước mỗi lần tương tác để nhận được tham chiếu mới nhất
- Không bao giờ cho rằng tài liệu tham khảo là cố định
### 3. Mẫu thực thi lệnh
- Sử dụng `&&` để xâu chuỗi nhiều lệnh, tránh việc khởi chạy quy trình lặp lại
- Chờ tải trang sau mỗi lệnh: `wait --load networkidle`
### 4. Trạng thái đăng nhập
- Sử dụng tham số `--profile` để chỉ định thư mục hồ sơ, duy trì trạng thái đăng nhập
- Nếu đăng nhập hết hạn, đăng nhập thủ công một lần để lưu trạng thái
### 5. Mở rộng biến môi trường Windows
- **Quan trọng:** Trên Windows, các biến môi trường như `%HOMEPATH%` phải được mở rộng sang đường dẫn thực tế trước khi sử dụng
- **Không chính xác:** `agent-browser --profile "%HOMEPATH%\.agent-browser\chrome-win64\chrome-profiles\github"`
- **Đúng:** Trước tiên hãy thực thi `echo $HOME` để lấy đường dẫn thực tế, sau đó sử dụng đường dẫn mở rộng
```bash
# Get HOME path (e.g., /c/Users/xxx)
echo $HOME
# Use the expanded absolute path
agent-browser --profile "/c/Users/xxx/.agent-browser/chrome-win64/chrome-profiles/github" --headed open https://github.com
```
- Nếu không mở rộng các biến môi trường, bạn sẽ gặp phải lỗi kết nối (ví dụ: `os error 10060`)
### 6. Cấu hình sắp xếp
- Bấm vào nút "Sắp xếp theo: Được gắn dấu sao gần đây" (thường tham khảo e44)
- Chọn tùy chọn "Nhiều sao nhất"
- Truy xuất lại nội dung trang
## Khắc phục sự cố thường gặp
| Vấn đề | Giải pháp |
|-------|----------|
| daemon đã chạy | Thực hiện trực tiếp các lệnh tiếp theo hoặc đóng rồi mở lại |
| Tham chiếu phần tử không hợp lệ | Thực hiện ảnh chụp nhanh -i để nhận tài liệu tham khảo mới nhất |
| Trang chưa được tải đầy đủ | Thêm chờ --load networkidle |
| Cần đăng nhập lại | Sử dụng chế độ --head để đăng nhập thủ công một lần và lưu trạng thái |
| Sắp xếp không được áp dụng | Xác nhận bạn đã nhấp vào tùy chọn sắp xếp chính xác |
## Định dạng đầu ra kết quả
- Tên dự án và liên kết
- Số lượng sao (sắp xếp theo thứ tự giảm dần)
- Số lượng nĩa
- Mô tả dự án (nếu có)