2016-08-04 45 views
1

我是Apache Nutch的新手,我想知道是否可以抓取網頁的選定區域。例如,請選擇一個特定的div並僅在該div中抓取內容。任何幫助,將不勝感激。謝謝!如何選擇nutch中特定標籤的數據

+1

從技術上講,爬蟲將始終加載整個頁面。你對內容的處理取決於你。 –

+0

如果是這樣,我如何才能選擇下一輪爬行的特定標籤下的內容? – Sachin

+0

你是什麼意思通過抓取特定的div?你只想提取這個div內的URL?或僅索引div的內容? –

回答

2

您將不得不編寫一個plugin,它將擴展HtmlParseFilter以實現您的目標。

我認爲你會自己做一些東西,比如解析html的特定部分,提取你想要的URL並將它們添加爲outlinks。

HtmlParseFilter實現:(下面的代碼給出了總體思路)

ParseResult filter(Content content, ParseResult parseResult, HTMLMetaTags metaTags, DocumentFragment doc){ 
    // get html content 
    String htmlContent = new String(content.getContent(), StandardCharsets.UTF_8); 
    // parse html using jsoup or any other library. 
    String url = content.getUrl(); 
    Parse parse = parseResult.get(url); 
    ParseData parseData = parse.getData(); 
    Outlink[] links = parseData.getOutlinks(); 
    // modify/select only required outlinks 
    // return ParsePesult with modified outlinks 
    return parseResult; 
} 

希望這會有所幫助。

如果您是插件新手,我寫了一個簡單的插件「nutch-fetch-page」,它使用HtmlParseFilter接口將本地驅動器上的html頁面和文本內容保存起來。您可以派生/下載並修改代碼。

+0

你可以添加如何使用jsoup設置選定的outlinks嗎? – Sachin

相關問題