
Anh Tuan
Data Science Expert

Việc trích xuất dữ liệu trạng thái hồ sơ nhập cư có thể giảm bớt các kiểm tra lặp lại cho các nhóm pháp lý, nhà cung cấp di chuyển và người nộp đơn, nhưng phải được thiết kế xung quanh sự đồng ý, quyền riêng tư và giám sát của con người. Kiến trúc đúng đắn không cung cấp quyền truy cập không giới hạn cho các cổng thông tin chính phủ. Thay vào đó, một dịch vụ an toàn nhận một mã hồ sơ được ủy quyền, truy xuất dữ liệu trạng thái tối thiểu thông qua kênh được phê duyệt, ghi lại bằng chứng nguồn, phát hiện các thay đổi có ý nghĩa và gửi sự kiện được cấu trúc đến quy trình AI. Xử lý CAPTCHA chỉ là bước phục hồi cho các phiên trình duyệt được phép, không bao giờ thay thế cho sự ủy quyền. Hướng dẫn này trình bày thiết kế thực tế cho việc theo dõi trạng thái, bảo vệ số biên nhận, phân tích trang, tích hợp CapSolver, phân loại thông báo, nhật ký kiểm toán và quy tắc nâng cấp phù hợp với các hoạt động pháp lý được giám sát.
Một dịch vụ theo dõi hồ sơ nên trả lời một câu hỏi hẹp: "Trạng thái của hồ sơ được ủy quyền này có thay đổi không?" Nó không nên tìm kiếm những người không liên quan, suy luận các đặc điểm được bảo vệ hoặc đưa ra kết luận pháp lý từ một thông báo ngắn trên cổng thông tin.
Công cụ Trạng thái Hồ sơ USCIS Trực tuyến sử dụng một số biên nhận 13 ký tự duy nhất gồm ba chữ cái và mười chữ số. Hãy coi xác định này là dữ liệu vận hành nhạy cảm ngay cả khi nó không phải là mật khẩu. Hướng dẫn Trạng thái Hồ sơ USCIS giải thích cách người nộp đơn có thể kiểm tra một đơn, khiếu nại hoặc yêu cầu.
Trước khi thu thập, yêu cầu:
FAQ về AI và Tự động hóa của CapSolver hữu ích khi xác định điều gì mô hình nên quyết định và điều gì các công cụ xác định nên thực hiện.
Chỉ lưu trữ những gì quy trình cần. Một hồ sơ hữu ích bao gồm ID vụ việc nội bộ giả danh, tham chiếu số biên nhận được bảo vệ, trạng thái chuẩn hóa, văn bản trạng thái gốc, nguồn và thời gian đánh dấu.
from dataclasses import dataclass
from datetime import datetime, timezone
@dataclass
class ImmigrationCaseStatus:
matter_id: str
receipt_number_ref: str
status_code: str
status_title: str
status_message: str
source_url: str
checked_at: str
source_updated_at: str | None = None
def utc_now() -> str:
return datetime.now(timezone.utc).isoformat()
Không đặt số biên nhận đầy đủ trong các lời nhắc mô hình, nhật ký, sự kiện phân tích hoặc trình theo dõi lỗi. Lưu trữ giá trị được mã hóa trong dịch vụ bí mật và chỉ gửi cho công nhân truy xuất một tham chiếu có thời hạn ngắn.
Bắt đầu với thông báo tài khoản chính thức, truy cập tài khoản trực tuyến và các nguồn dữ liệu được phê duyệt. Tự động hóa trình duyệt nên là tùy chọn cấu trúc cuối cùng, không phải mặc định.
| Kênh thu thập | Sử dụng được khuyến khích | Mức độ phơi bày quyền riêng tư | Tính ổn định vận hành |
|---|---|---|---|
| Thông báo tài khoản chính thức | Cảnh báo do người nộp đơn khởi xướng | Thấp | Cao |
| API được phê duyệt hoặc tích hợp quản lý hồ sơ | Giám sát danh mục được ủy quyền | Thấp đến trung bình | Cao |
| Xuất dữ liệu hoặc thông báo do người dùng cung cấp | Tiếp nhận bằng chứng một lần | Trung bình | Cao |
| Kiểm tra trạng thái trình duyệt được ủy quyền | Lựa chọn dự phòng hạn chế | Trung bình | Trung bình |
| Quét không kiểm soát | Không được khuyến khích | Cao | Thấp |
<Hướng dẫn chính thức về kiểm tra trạng thái USCIS> Hướng dẫn kiểm tra trạng thái USCIS nên là tài liệu tham khảo vận hành chính. Đối với bối cảnh thời gian, Công cụ ước tính xử lý USCIS cung cấp ước tính riêng; không coi ước tính là cam kết cụ thể cho hồ sơ.
Xác minh định dạng trước khi bắt đầu phiên trình duyệt. Điều này giảm các yêu cầu không cần thiết và ngăn dữ liệu không đúng định dạng đến cổng thông tin.
import re
RECEIPT_PATTERN = re.compile(r"^[A-Z]{3}[0-9]{10}$")
def normalize_receipt_number(value: str) -> str:
normalized = value.replace("-", "").replace(" ", "").upper()
if not RECEIPT_PATTERN.fullmatch(normalized):
raise ValueError("Số biên nhận phải chứa ba chữ cái và mười chữ số")
return normalized
Trả về thông báo xác minh chung cho người dùng. Tránh lặp lại số biên nhận đầy đủ trong các lỗi ngăn xếp hoặc vé hỗ trợ.
Công nhân trình duyệt nên được tách biệt khỏi mô hình ngôn ngữ. Nó nhận một tham chiếu mã hồ sơ được ủy quyền, truy xuất giá trị được mã hóa, thực hiện kiểm tra và phát sinh kết quả được làm sạch.
from playwright.async_api import Page
CASE_STATUS_URL = "https://egov.uscis.gov/"
async def fetch_status_page(page: Page, receipt_number: str) -> dict:
await page.goto(CASE_STATUS_URL, wait_until="domcontentloaded")
# Các trình chọn phải được xác minh với trang được ủy quyền hiện tại.
await page.get_by_label("Nhập một Số Biên Nhận").fill(receipt_number)
await page.get_by_role("button", name="Kiểm tra Trạng thái").click()
await page.wait_for_load_state("networkidle")
title = await page.locator("main h1, main h2").first.inner_text()
message = await page.locator("main").inner_text()
return {
"status_title": title.strip(),
"status_message": message.strip(),
"source_url": page.url,
}
Các trình chọn và hành vi trang có thể thay đổi. Kiểm tra với môi trường thử nghiệm được phép hoặc quy trình kiểm soát, giám sát các lỗi phân tích và định tuyến bố cục không mong muốn đến kiểm tra của con người thay vì để mô hình đoán.
Hướng dẫn quét web bằng Python của CapSolver đề cập đến các thực hành trình duyệt và phân tích mạnh mẽ, trong khi FAQ quét web của CapSolver giải quyết các câu hỏi phổ biến về độ tin cậy tự động hóa.
Nếu phiên trình duyệt được ủy quyền hiển thị CAPTCHA được hỗ trợ, sử dụng các phương pháp trình duyệt Core của CapSolver được mô tả trong tài liệu AI Agent do người dùng cung cấp. Mô hình không nên nhận số biên nhận, cookie trình duyệt hoặc khóa CapSolver.
import os
from capsolver_core import Capsolver
cap = Capsolver(
api_key=os.environ["CAPSOLVER_API_KEY"],
default_timeout=180,
)
async def resolve_supported_challenge(page: Page) -> dict:
detected = await cap.detect(page)
if not detected:
return {"handled": False, "reason": "Không phát hiện thách thức được hỗ trợ"}
solution = await cap.solve_on_page(page)
return {
"handled": True,
"solution": solution,
}
Giới hạn số lần thử lại. Một công nhân an toàn có thể thử tra cứu trạng thái, kích hoạt trình xử lý thách thức một lần nếu cần, sau đó thử lại hành động ban đầu. Nếu thách thức lặp lại, dừng lại và yêu cầu xem xét của người vận hành.
async def authorized_status_check(page: Page, receipt_number: str) -> dict:
try:
return await fetch_status_page(page, receipt_number)
except Exception as first_error:
recovery = await resolve_supported_challenge(page)
if not recovery["handled"]:
raise first_error
return await fetch_status_page(page, receipt_number)
FAQ giải quyết CAPTCHA của CapSolver giải thích các quy trình thách thức được hỗ trợ. Để khắc phục sự cố, sử dụng FAQ lỗi và khắc phục sự cố của CapSolver.
Mã bổ sung: Sử dụng mã WEBS tại Bảng điều khiển CapSolver để nhận thêm 5% tiền thưởng cho mỗi lần nạp tiền.
Các thông báo cổng thông tin được viết cho người nộp đơn, không phải cho phân loại máy tính. Giữ nguyên văn bản nguồn đầy đủ và chỉ ánh xạ các danh mục quy trình cấp cao.
STATUS_RULES = {
"case was received": "received",
"case is being actively reviewed": "under_review",
"request for evidence": "evidence_requested",
"case was approved": "approved",
"card was produced": "document_produced",
"case was denied": "adverse_decision",
}
def classify_status(title: str, message: str) -> dict:
combined = f"{title} {message}".lower()
for phrase, code in STATUS_RULES.items():
if phrase in combined:
return {"status_code": code, "confidence": "rule_match"}
return {"status_code": "unclassified", "confidence": "needs_review"}
Các quy tắc nên kích hoạt các hành động quy trình, không phải kết luận pháp lý. Ví dụ, evidence_requested có thể tạo một nhiệm vụ kiểm tra, nhưng chỉ có chuyên gia có trình độ mới nên giải thích yêu cầu và tư vấn người nộp đơn.
So sánh các trường được chuẩn hóa và băm của thông điệp nguồn. Chỉ thông báo khi mã trạng thái hoặc văn bản mang tính chất thay đổi.
import hashlib
def status_fingerprint(status: dict) -> str:
canonical = "|".join([
status.get("status_code", ""),
status.get("status_title", "").strip(),
status.get("status_message", "").strip(),
])
return hashlib.sha256(canonical.encode("utf-8")).hexdigest()
def has_changed(previous: dict | None, current: dict) -> bool:
if previous is None:
return True
return status_fingerprint(previous) != status_fingerprint(current)
Sử dụng lịch trình dựa trên rủi ro thay vì quét liên tục. Nhiều quy trình cần kiểm tra hàng ngày hoặc hàng tuần, không phải theo phút. Tôn trọng giới hạn cổng thông tin và tạm dừng công việc trong các sự cố hoặc đột biến thách thức bất ngờ.
Mô hình AI nên nhận một đối tượng sự kiện được che giấu an toàn để tóm tắt.
SAFE_EVENT = {
"matter_id": "MAT-2026-00172",
"previous_status": "under_review",
"current_status": "evidence_requested",
"change_detected_at": "2026-08-25T08:15:00Z",
"source": "official_case_status_portal",
"recommended_action": "create_human_review_task",
}
Một chỉ dẫn hệ thống phù hợp là: "Tóm tắt thay đổi được phát hiện, trích dẫn thời gian đánh dấu nguồn và tạo danh sách kiểm tra đánh giá. Không cung cấp lời khuyên pháp lý, dự đoán kết quả hoặc liên hệ với chính phủ hoặc người nộp đơn mà không có sự phê duyệt."
Đối với ý tưởng kiến trúc mô hình, xem blog AI của CapSolver và nguồn tự động hóa của CapSolver.
Các vấn đề nhập cư có thể chứa thông tin cá nhân rất nhạy cảm. Áp dụng mã hóa trong truyền tải và lưu trữ, truy cập ít nhất, xác thực nhân viên, tách biệt người dùng, ghi nhật ký kiểm toán, lịch xóa dữ liệu và phản ứng sự cố. Chính sách trang web USCIS và thông báo quyền riêng tư của cổng thông tin nên được xem xét trước khi triển khai.
Không thu thập trạng thái cho những người chưa ủy quyền dịch vụ. Không suy luận quốc tịch, sức khỏe, tôn giáo, hoàn cảnh gia đình hoặc khả năng việc làm vượt quá hồ sơ được xác minh và mục đích được phê duyệt. Không huấn luyện mô hình tổng quát trên số biên nhận hoặc lịch sử hồ sơ. Tham khảo luật sư có trình độ cho các yêu cầu pháp lý và quyền riêng tư cụ thể khu vực.
| Khu vực kiểm soát | Yêu cầu sản xuất tối thiểu |
|---|---|
| Ủy quyền | Sự đồng ý bằng văn bản của khách hàng hoặc người nộp đơn liên kết với ID vụ việc |
| Bí mật | Số biên nhận được mã hóa và tham chiếu bằng token |
| Thu thập | Kênh chính thức đầu tiên; chỉ sử dụng fallback trình duyệt nếu được phép |
| CAPTCHA | Trình xử lý xác định, một lần thử lại có giới hạn, không có bí mật trong lời nhắc |
| Phân tích | Văn bản gốc được giữ nguyên; bố cục không mong muốn được gửi đến kiểm tra |
| Đầu ra AI | Tóm tắt và định tuyến nhiệm vụ chỉ, không phải lời khuyên pháp lý |
| Lưu trữ | Chính sách xóa dựa trên vụ việc và lịch sử truy cập có thể kiểm toán |
Việc trích xuất dữ liệu trạng thái hồ sơ nhập cư nên được xây dựng như một dịch vụ bằng chứng an toàn, không phải một nhà ra quyết định pháp lý tự động. Bảo vệ số biên nhận, ưu tiên các kênh chính thức, tách biệt thực thi trình duyệt, giữ nguyên văn bản nguồn và chỉ gửi cho mô hình AI một sự kiện thay đổi được che giấu. Khi phiên trình duyệt được phép gặp phải CAPTCHA được hỗ trợ, CapSolver có thể cung cấp bước phục hồi được kiểm soát trong khi phần còn lại của hệ thống duy trì ủy quyền, quyền riêng tư và khả năng kiểm toán.
Bắt đầu với CapSolver trong môi trường kiểm soát, sau đó hoàn tất kiểm toán quyền riêng tư, bảo mật, điều khoản và pháp lý trước khi theo dõi các vụ việc thực tế.
Không. Theo dõi chỉ các hồ sơ mà người nộp đơn hoặc khách hàng được ủy quyền đã cho phép và tổ chức của bạn có mục đích pháp lý được ghi nhận.
Khả năng có mặt khác nhau tùy theo cơ quan và chương trình. Ưu tiên thông báo tài khoản chính thức, tích hợp được phê duyệt hoặc hồ sơ do người dùng cung cấp. Không giả định rằng trang web cho phép thu thập tự động.
Không. Giữ toàn bộ xác định bên trong dịch vụ truy xuất được bảo vệ. Gửi mô hình một ID vụ việc giả danh và sự kiện trạng thái được che giấu.
Dừng lại sau khi thử phục hồi có giới hạn và yêu cầu xem xét của con người. Các thách thức lặp lại có thể chỉ ra vấn đề phiên, tốc độ, chính sách hoặc kỹ thuật mà tự động hóa không nên bỏ qua.
Nó có thể tóm tắt văn bản chính thức và tạo nhiệm vụ kiểm tra, nhưng việc giải thích pháp lý, thời hạn, phản hồi và giao tiếp với người nộp đơn nên được xử lý hoặc phê duyệt bởi chuyên gia có trình độ.
Học kiến trúc gỡ mã web Rust có thể mở rộng với reqwest, scraper, gỡ mã bất đồng bộ, gỡ mã trình duyệt không đầu, xoay proxy và xử lý CAPTCHA tuân thủ.

Tự động hóa việc giải CAPTCHA với Nanobot và CapSolver. Sử dụng Playwright để giải reCAPTCHA và Cloudflare tự động.
