2017-03-06 56 views
1

在學習了很多關於StackOverflow的文章和一些問題之後,我知道我需要爲此目的編寫一個定製的解析器插件,並且我也知道如何做到這一點,但我被困在如何進行。如何使用Nutch解析和檢索圖像

事實上,我對系統的「流程圖」感到困惑,這可能需要對Nutch抓取和解析機制進行深入研究。從哪兒開始?定製HTML解析過程,然後解析相關頁面上的img標籤,最後使用JSoup等工具完成該過程。

例如,讓我必須抓取網絡並收集某個特定品牌商品的所有圖像。圖像搜索將通過文件名和周圍的文本進行(這也使得有必要包括文本解析)。

系統流程圖應該如何開始編寫自定義插件?

我使用Nutch的1.12和Solr 6.3集成...

回答

4

讓我說,你正在試圖做的是不是一項容易的任務開始,但讓我們走一步看一步:

  1. 假設您在抓取開始前沒有抓取圖像的所有網址,則需要抓取整個網頁,但只需將圖像保存在索引(以及所有關聯的元數據)中。對於這個特定的問題,你可以使用mimetype-plugin其中一個示例配置做了一個簡單的版本(阻止所有內容並僅顯示圖像)。

  2. 您需要提取關於圖像(大小,顏色等)的元數據,好消息是Tika已經解析了圖像並檢測了很多元數據。而且您需要編寫一個自定義分析過濾器來提取所需的所有其他數據。你

  3. 還需要提取圖片周圍的文字,這是不是真的很難在HtmlParseFilter,棘手的部分是你會如何涉及此內容與圖像的元數據。你可以完成這個任務的一種方法是編寫一個自定義的ScoringPlugin來將圖像本身的原始HTML頁面(文本所在的位置)的數據共享到實際的NutchDocument(請記住,這是在不同的Nutch步驟中處理的)。另外一個機會是將其作爲兩個分開的文檔(圖像元數據+從HTML中提取的元數據)進行索引,並在應用程序的查詢端(例如Web應用程序)執行組/聯接。

一些補充說明,這個特殊的用例是不是真的簡單,在與出的現成的Nutch的功能瞬間實現,而是明確可行的。我以前的方法構建了一個基於Nutch和Solr的圖像搜索引擎。

+0

太好了。目前像面部檢測,顏色,尺寸等圖像屬性對我來說是未來的工作,我只會做其餘的事情。你有什麼博客文章等解釋你建立的搜索引擎? –

+0

博客文章解釋了所有東西如何粘在一起是在我的路線圖上,但目前還沒有寫出來,對不起。我發表了一個演講,提到去年在圖像搜索引擎上完成的一些工作ApacheCon:您可以聽[音頻](https://feathercast.apache.org/2017/02/10/apachecon-seville- 2016-building-a-search-engine-for-the-cuban-web-nicolas-malin-julien-nicolas /)和[幻燈片](http://events.linuxfoundation.org/sites/events/files/slides/ apacheconeu-2016.pdf)但不確定會有多大幫助。 –

+0

//你可以做到這一點是寫一個自定義的ScoringPlugin來分享原始HTML頁面(文本所在的位置)的數據到圖片本身的實際NutchDocument // 您能否詳細說明這一點?這將把我們帶到哪裏? –