Chuyển tới nội dung chính

TPBGovAu

Project: Ezy.Module.Selenium.Search.TPBGovAu File chính: TPBGovAu.cs

Tra cứu đăng ký đại lý thuế trên Tax Practitioners Board register (site công khai).

Nguồn

  • URL nạp từ Setting.json. Site công khai: tpb.gov.au (TPB Register).

Input

Bảng TextSearch_TPBGovAu. Module đọc các trường: FirstName, RegistrationNumber, LegalName, Suburb, LastName, Business_TradingName, State.

:::note Lưu ý không khớp schema Entity auto-gen TextSearch_TPBGovAu.cs hiện chỉ khai báo RegistrationNumber, Suburb, State, NameOrABN, PractitionerType, RegistrationStatus. Các trường FirstName/LastName/LegalName/Business_TradingName được scraper tham chiếu nhưng không có trong entity hiển thị → có thể schema DB thực khác bản auto-gen. Cần lưu ý khi đọc code. :::

Login / Captcha

Không.

Các bước scrape

  1. Navigate URL, sleep 5s.
  2. Điền lần lượt 7 ô input nếu có giá trị (isSearch=true).
  3. Click ButtonSearch; di chuột tới HelpFooter để cuộn.
  4. Lưu baseUrl, lặp countNoOfDetailEachSearch: lấy link Business_TradingNameLink (Displayed & có Text), click cái thứ count, sleep 5s.
  5. GetDataFromWebsite: đọc columns → set property TextSearch_Data_TPBGovAu qua reflection.
  6. Nếu có RegistrationNumber: chụp screenshot → ImageURLs; di chuột BackToSearch.
  7. Update/Insert theo RegistrationNumberkhông check IsDifference, luôn update nếu đã tồn tại.

Output

Entity TextSearch_Data_TPBGovAu. Khóa = RegistrationNumber. Trường: LegalName, Practice_TradingName, RegistrationType/Number/Status/Date/ExpiryDate, BusinessAddress, Conditions, Suspensions, Sanctions, Disqualification, Termination, ProfessionalAssociations, ABN, ImageURLs, PdfURLs, ScreenshotImageURLs, LinkToDetail. Screenshot có; PDF có cột nhưng không gọi DownloadPDF trong file này.

Lỗi / edge cases

  • Try/catch + Log_Exception ở mọi nhánh thiếu setting/input.
  • Cột không tồn tại (nếu IsIgnoreLog thì bỏ qua) → log.
  • Bug nhỏ: sMessage không bao giờ được gán trong catch, nên khối ghi "Search Fail" thực tế không bao giờ chạy.

Trạng thái: active.