2015-06-18 114 views
1

我試圖通過其餘api啓動爬網。抓取始於注入網址。使用鉻開發工具「高級休息客戶端」我試圖建立這個POST有效載荷,但我得到的答覆是一個400壞請求。Apache Nutch REST api

POST - http://localhost:8081/job/create

有效載荷

{ 
    "crawl-id":"crawl-01", 
    "type":"INJECT", 
    "config-id":"default", 
    "args":{ "path/to/seedlist/directory"} 
} 

我的問題是在指定參數時,我覺得更多的是需要的,但我不知道。在NutchRESTAPI頁面中,它是創建作業的示例。

POST /job/create 
    { 
     "crawlId":"crawl-01", 
     "type":"FETCH", 
     "confId":"default", 
     "args":{"someParam":"someValue"} 
    } 

POST /job/create 
    { 
     "crawlId":"crawl-01", 
     "jobClassName":"org.apache.nutch.fetcher.FetcherJob" 
     "confId":"default", 
     "args":{"someParam":"someValue"} 
    } 

我不確定什麼參數或值給每個命令來完成一項工作。 (例如Inject,Generate,Fetch,Parse和UpdateDb)有人可以清除它嗎?我如何告訴api在哪裏查找種子列表?

UPDATE

努力完成我來到一個classException錯誤,其中用於TOPN關鍵字的值是long類型的,但API讀取它作爲一個字符串或一個int的生成命令時。我發現了一個應該包含在2.3.1版本(發佈日期:TBA)中的修復程序,並將其應用並重新編譯了我的代碼。它現在可以工作。

+0

你使用Nutch 2.3嗎? – jgloves

+0

是的,我是。只是還沒有找到一個完整的文檔,列出所有可能的參數或可接受的值進行適當的爬網。 – itsNino91

+0

我在下面的答案鏈接到一個更詳細的文件。 – jgloves

回答

3

在本文發佈時,REST API尚未完成。存在更詳細的文件,儘管它還不全面。它與下面的電子郵件從用戶的郵件列表(你可能要考慮加入):

http://www.mail-archive.com/user%40nutch.apache.org/msg13652.html

但是,爲了回答你有關種子列表的問題,您可以創建通過REST的種子列表,或你可以使用參數「seedDir」

{ 
    "args":{ 
     "seedDir":"/path/to/seed/directory" 
    }, 
    "confId":"default", 
    "crawlId":"sample-crawl-01", 
    "type":"INJECT" 
} 
+0

使用你的答案似乎給了我一個200 OK的http響應,但是如果成功的話,REST api應該會返回一個作業ID。相反,我得到了「意外令牌c」的響應。我懷疑告訴我這是因爲我的路徑是C:\ Users \ username \ Desktop \ folder \文件夾。有什麼我需要做的來照顧這個錯誤? – itsNino91

+0

當你使用命令行注入時,你能夠使用相同的路徑嗎? (不使用REST) – jgloves

+0

您是否嘗試用正斜槓替換反斜槓? – jgloves