2015-06-18 75 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