我懷疑存在銀子彈算法,無需任何培訓只會在任意搜索查詢輸出工作。
然而,這個任務可以解決,並在許多應用程序中實際解決,但以不同的方法。首先,您必須根據您實際要使用的內容(可能是名稱,日期,鏈接,描述片段等)定義單個搜索結果項的一般結構,然後編寫將提取必要的html解析器的數量必需的字段來自特定網站的搜索結果輸出。
我知道這不是超級性感的解決方案,但它可能是唯一有效的解決方案。這不是火箭科學。編寫解析器實際上非常簡單,你可以每天打十幾個。如果您將查看搜索結果的html源代碼,您會注意到輸出結果通常非常結構化並標有特定div部分或類屬性,因此在文檔中很容易找到它。你甚至沒有使用任何複雜的HTML解析庫,grep-like就足夠了。
例如,在這個特定頁面上,您的問題始於<div class="post-text">
並以</div>
結尾。它們之間的所有內容實際上都是帶有一些HTML格式的文本文本,您可能希望刪除其中的多餘空格和「\ n」。而這個<div class="post-text">
只出現在頁面上一次。
一旦您大規模地使用您的檢索應用程序,您會發現在不同網站上沒有大量不同的搜索引擎,並且您將能夠重新使用已創建的解析器,搜索引擎。
你必須記住的唯一事情就是內置的自我測試。網站往往會不時升級和改變設計。如果您的應用程序要存活一段時間,則需要在解析器中包含一些邏輯來檢查其結果的有效性,並在每次搜索輸出已更改且不再與解析器兼容時通知您。然後,您將不得不修改特定的解析器或編寫新的解析器。
希望這會有所幫助。