ASIC.Connect
Project:
Ezy.Module.Selenium.Search.ASIC.ConnectFile chính:Search_ASIC_Connect.cs
Tra cứu giấy phép / đăng ký doanh nghiệp trên ASIC Connect.
Nguồn
- Host:
connectonline.asic.gov.au(đọc từConfigs/ASICConnect/Setting.json→URL, không hardcode trong.cs). - Trang search:
.../RegistrySearch/faces/landing/SearchRegisters.jspx.
Input
Đọc hàng đợi từ bảng TextSearch_ASICConnect qua db.Get_TextSearch_ASICConnect(), lọc !IsDisable và TypeSearch == "SimpleSearch".
| Cột | Vai trò |
|---|---|
TextSearch_Number | Số (license / credit number) — ưu tiên dùng trước |
TextSearch_Name | Tên — dùng nếu không có số |
Register | Loại register, chọn trong dropdown (SelectByText) |
Tham số ids[] để giới hạn theo Id cụ thể.
Login / Captcha
- Không đăng nhập.
- Có reCaptcha: sau khi bấm Search, nếu element
ReCaptchahiển thị →throw "Need pass reCaptcha"(không tự giải). Việc nhập captcha thủ công xử lý ở luồng Winform: gửi thông báo qua Google Chat yêu cầu người trực vào server nhập tay (chờ tối đa 90s).
Các bước scrape
StartSearchAndDownload:
- Mở DB,
RefreshCache(), build dictionary dữ liệu cũ theoLicenceNumbervàCreditRepresentativeNumber(db.Get_ASICConnect_Data()). - Lấy
moreSettingtên"ASICConnect"+searchConfigs. - Refresh trang → click
bnConnectionTemplate:gl1→ điều hướng tới trang search (MoveToSearchPage). - Mỗi
textSearch: nhập số (NumberSearch) hoặc tên (NameSearch). - Chọn
Register(dropdown) → bấmSearchButton. - Kiểm tra reCaptcha → dừng nếu có.
- Lặp kết quả tối đa
setting.NoOfDetailEachSearch: click từng row →GetDataFromWebsite(...)→BackButton(fallback dùngViewDetails). GetDataFromWebsiteđọc các bảngTableDetail, ánh xạ theocolumns[].FuncGetDatatới các parser:Get_LicenseeData,Get_RepresentativeData,Get_AddressesData,Get_TradingNameData,Get_ExternalDisputeResolutionData.- Chụp screenshot (
DeSearchHelper.TakeScreenShot) + tải PDF (DownloadPDF("ASICConnect", ...)— clickPDFSetting, copy file từ thư mục Download). - Cập nhật
NumberForTextSearch,SearchStatus,SaveChanges().
Output
Bảng TextSearch_Data_ASICConnect. Ghi qua Insert_ASICConnect_Data / Update_ASICConnect_Data (chỉ update khi IsDifference(...) = true).
Field chính: Name, LicenceNumber, CreditRepresentativeNumber, Status, ABNId, MainCommenced, PrincipalBusinessAddress, TradingName, TradingNameFrom, Scheme, MembershipNumber, ScreenShotName, PDFName.
Trong parser dùng
LicenceNumber/CreditRepresentativeNumber; entity DB ánh xạ sangCredLicNumber/CredRepNumber(partial class mở rộng).
Lỗi / edge cases
- Try/catch toàn bộ: lỗi →
Log_Exception+ setSearchStatus = "Search Fail At..."cho mọi queue item. - Mỗi field input có try/catch riêng (
"Can't find element"). - Không thấy input →
Log_Exception("Can't find input"). - reCaptcha → throw để dừng.
- Không có kết quả → log
"Find nothing on this website".
Trạng thái: active.