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

WhitePages

Project: Ezy.Module.Selenium.Search.WhitePages File chính: WhitePages.cs + WhitePages_Winform.cs (logic thật trong SearchWinform.cs — Share)

Tra cứu danh bạ điện thoại / địa chỉ doanh nghiệp trên WhitePages (site công khai).

Nguồn

  • Site: whitepages.com.au (cấu hình WebsiteSetting_NotRunning.json; cũng strip prefix này trong code). Runtime URL lấy từ setting.URL (DB WebsiteSetting).
  • Lưu ý: Configs/WhitePages/Setting.json đặt URL = google.com (placeholder, không phải URL chạy thật).

Hai entry-point

ClassCơ chế
WhitePagesSelenium ChromeDriver thuần — chỉ chụp screenshot, không bóc field chi tiết
WhitePages_WinformEO.WebBrowser WinForm — bản đang dùng (vì WebsiteSetting.IsWinform=false), bóc đầy đủ field

Input

Bảng TextSearch_WhitePages qua db.Get_TextSearch_WhitePages(), lọc !IsDisableTypeSearch == SimpleSearch; lọc thêm ids[].

CộtVai trò
NameNhập field businessQueryField
LocationNhập field businessLocationQueryField
TextSearch_DataLưu link kết quả

Selector field-name lấy từ Configs/WhitePages/MoreSetting.json.

Login / Captcha

Không.

Các bước scrape (SearchWinform.cs, bản Winform)

  1. StartSearchAndDownload: nạp listTextSearch, build dict_Data (key = LinkSearch), gọi winform.GoToURL().
  2. GoToURL()LoadUrl(setting.URL).
  3. SendValueAndClickSearchToInputWebsite: nhập Name rồi Location, click SearchButton.
  4. CalcDetail(): querySelectorAll(ListSearchResult) đếm số kết quả → detailFounds; nếu là promoted listing thì detailFounds--, pos++.
  5. MoveToDetail(): với từng kết quả, bóc trước Name/BusinessName/Location, rồi click vào trang chi tiết.
  6. GetDataFromWebsite(): LinkSearch = Path.GetFileName(url); GetDetailData() bóc Contact (p.phone-number-text) và MoreInfoListDataJson; TakeScreenshot_Winform lưu {linkSearch}.jpg; set ImageURLs.
  7. Upsert: dict_DataLinkSearchUpdate_WhitePages_Data, ngược lại Insert_WhitePages_Data; TextSearch_Data = join(";", listDetail).

Output

Entity TextSearch_Data_WhitePages. Trường: Name, BusinessName, Location, LinkSearch (slug từ URL), LinkToDetail, ListDataJson (Contact + MoreInfo), ImageURLs. Screenshot .jpg; không PDF.

Lỗi / edge cases

  • Không có data search → AddActionLog("WhilePages", "Can't find search data").
  • Name rỗng → SearchStatus = "...Name column must have value".
  • Không có kết quả → detailFounds=0SearchStatus = "...No detail found".
  • Insert input thất bại / exception → AddActionLog + Log_Exception; lỗi giữa chừng → SearchStatus = "Search Fail At...".

Trạng thái: active (bản Winform).