中央的文章頁與選單、留言和頁尾卡片分開。
檢查擷取保留了什麼、移除了什麼。

HTML 是已儲存的頁面標記。程式庫是另行安裝、供讀者使用的程式碼。雜湊是檔案指紋,用來識別確切的已儲存複本。None 或空白輸出代表擷取未能提供結果。把已擷取的輸入、正文和擷取狀態分開;登入頁、挑戰頁或 HTML 外殼不是已取得的正文,而且沒有測試頁面繪製或隱藏存取。

檢查從網頁擷取的正文

  1. 界定代理需要頁面上的哪些內容,以及哪些頁面區域不在該需要之內。這個方法針對擷取品質。
  2. 如果需要尋找候選網址,使用公開的 Google Search Scraper build 1.0.15 Actor 和一個 Task。用一個預定搜尋片語取代整份已儲存的三項查詢樣本,設定使用 `queries` ["one intended phrase"]、`engines` ["bing"]、`maxResultsPerExecutedQuery` 2、`country` "US"、`language` "en"、`safeSearch` true,以及 `includeSponsoredResults` false。原生搜尋候選欄位包括 `engine`、`executedQuery`、`canonicalUrl`、`resultDomain`、`snippet`、`rank`、`page` 和 `observedAt`。輸出彙總紀錄包括 `queriesRequested`、`searchesCompiled`、`executionsPlanned`、`enginesRequested`、`enginesSuccessful`、`enginesFailed`、`pagesAttempted`、`pagesParsed`、`candidatesSeen`、`resultsSaved`、`engineStatusCounts`、`queryResultCounts` 和 `stopReason`。目前的兩列 Bing 對照傳回直接的 docs.python.org 候選網址,並帶有查詢、排名 1 和 2、頁碼 1,以及觀察時間,另外有一個已解析頁面,以及 stopReason `result_caps_reached`。它只核實範圍有限的候選項目,不核實目的地擷取、文字擷取,或其他引擎或市場。這裡只有 Bing 有已通過驗收的引擎證據。
  3. 另行擷取一個獲准的目的地頁面,並保留其最終網址、擷取時間、內容類型和來源 HTML。搜尋 Actor 不會做這次擷取。核實已儲存的輸入確實包含預定的文章文字。把 `fetch_failure`、`body_not_in_saved_html` 和 `extraction_unavailable` 分開。
  4. 在已記錄的版本和選項下,對該已儲存 HTML 另行執行一個文字擷取程式庫。原始的本機 HTML 測試樣本,曾以已安裝的 2.0.0 版、用 `trafilatura.extract(html, include_comments=False)` 測試。注意,目前文件描述的是 2.3.1 版,因此這些版本事實必須分開。
  5. 在驗收輸出之前,先界定幾項來源檢查:必要的標題或段落、否定或條件、數字及其單位,以及被排除的導覽、頁尾或留言。比較已儲存 HTML 和傳回的文字。遺漏的單位或缺失的否定,都可以把意思反轉。
  6. 把每項檢查記錄為 retained、changed、missing、unwanted_noise_present 或 cannot_resolve,並附上確切來源定位和擷取段落。只在有用時才計算已檢查事實的數目。
  7. 如果一項關鍵檢查失敗,覆核已儲存 HTML 和擷取設定,而不要把損毀的文字交給代理。
  8. 儲存一份精簡擷取紀錄:來源網址和擷取情境、HTML 參照或雜湊、擷取器版本和選項、輸出參照、檢查表,以及決定。

原始的虛構完整已儲存 HTML 測試樣本:「Fictional tray guide」的已儲存 HTML 有導覽、登入和頁尾區塊、一篇文章,以及一個留言區。文章寫道:「Do not add water until the tray is level」以及「Use 12 milliliters of water for this fictional demonstration.」。留言和選單包含無關詞語。這個測試樣本沒有即時擷取任何目的地。

檢查從網頁擷取的正文
檢查項目已儲存 HTML 內容擷取文字輸出狀態
必要標題Fictional tray guideFictional tray guide已保留
否定/條件Do not add water until the tray is levelDo not add water until the tray is level已保留
數字和單位12 milliliters12 milliliters已保留
導覽標記NavigationMarker不存在讀者建立的檢查:不需要的雜訊不存在
頁尾標記FooterMarker不存在讀者建立的檢查:不需要的雜訊不存在
留言標記CommentsMarker不存在讀者建立的檢查:不需要的雜訊不存在

已安裝的 2.0.0 版擷取器呼叫產生了非空白正文。像「Add water. Use 12」這樣的假設輸出會使兩項檢查失敗,因為必要的否定和條件已改變,而且數字的單位缺失。假設輸出為空白,會標成 `extraction_unavailable`,而不是一篇事實為零的文章。

來源與延伸閱讀

作者 Chronometrica · 更新日期

返回頂端 ↑