AbrBusinessGov
Project:
Ezy.Module.Selenium.Search.AbrBusinessGovFile chính:Search_ABR_Lookup.cs
Tra cứu ABN / business name trên Australian Business Register (site công khai, không đăng nhập).
Nguồn
- Host:
abr.business.gov.au(cũng dùngsuperfundlookup.gov.au); đọc từConfigs/AbrBusinessGovAu/Setting.json→URL. - Trang detail mở qua link
a[href^='/ABN/View'](tức.../ABN/View?abn=...).
Input
Đọc hàng đợi TextSearch_ABNLookup qua db.Get_TextSearch_ABNLookup(), lọc !IsDisable và TypeSearch == "SimpleSearch".
| Cột | Vai trò |
|---|---|
ABNLookupText | ABN / ACN / tên — nhập vào ô search |
Tham số ids[] để giới hạn theo Id.
Login / Captcha
Không. Site ABR công khai, không credential.
Các bước scrape
StartSearchAndDownload:
- Mở DB,
RefreshCache(), build dictionary dữ liệu cũ theoABNId(db.Get_ABNLookup_CurrentDetails()). - Nhập
ABNLookupTextvàoSearchText→ bấmMainSearchButton(fallbackinput[class='default']). - Lấy danh sách kết quả
a[href^='/ABN/View']:- Nhiều kết quả: duyệt từng link tối đa
NoOfDetailEachSearch; scroll bằng JS; lấyhref;OpenNewTab(...);GetDataFromWebsite(_abnId, ...); lưuTextSearch_Data(nối;); đóng tab, switch về tab gốc. - Không có link kết quả: nếu không thấy
input[value='Export']⇒ coi như đã vào thẳng trang detail (isDetail=true), parse luôn theoABNLookupText. Nếu thấy nút Export ⇒ không có kết quả.
- Nhiều kết quả: duyệt từng link tối đa
GetDataFromWebsite: tạonewItem{ ABNId }; kiểm tra trading name (a[href^='/Help/Glossary#tradingname']); duyệtcolumns, đọc giá trị bằngDeSearchHelper.GetValue(Id / CssSelector / FullXPath), set property cùng tên qua reflection.- Chụp screenshot (
CurrentDetails) →ImageURLs; tải PDF →PdfURLs. - Cập nhật
SearchStatus,SaveChanges.
Output
Bảng TextSearch_Data_ABNLookup_CurrentDetails. Ghi qua Insert_ABNLookup_CurrentDetails / Update_ABNLookup_CurrentDetails.
Field chính: ABNId, EntityName, ABNStatus, EntityType, GST, MainBusinessLocation, BusinessInformation, RegistrationDate, NextReviewDate, ImageURLs, PdfURLs.
Hàng đợi cũng được cập nhật cột TextSearch_Data = danh sách ABN tìm thấy (nối ;).
Lỗi / edge cases
- Try/catch toàn bộ: lỗi →
Log_Exception+SearchStatus = "Search Fail At...". - Không có queue data →
"Search data not found"+ log. - Column không tồn tại và
!IsIgnoreLog→Log_Exception("Column not exist"). - Trading name không có → bỏ qua các column chứa
"TradingName". - Có nút Export (không có kết quả thực) →
SearchStatus "Found: 0".
Trạng thái: active.