首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Nutch转储外国图像

使用Nutch转储外国图像
EN

Stack Overflow用户
提问于 2019-04-17 13:15:45
回答 1查看 57关注 0票数 0

我正在尝试使用Apache转储完整的站点内容。它可以很好地处理来自同一个域的html页面和图像,但是它不会转储来自其他站点的图像,例如,如果我有一个带有内容的域foo.bar的站点:

代码语言:javascript
复制
<html>
<body>
  <img src="http://foo.bar/img"/>
  <img src="http://another.domain/img"/>
</body>
</html>

Nutch只会转储第一个图像(foo.bar/img),而不会转储第二个图像(another.domain/img)。

现在我正在使用几乎默认的配置。如何配置nutch从其他域获取外国图像?

更新:我从代码中运行了4个解析周期,这是Nutch代码:https://gist.github.com/g4s8/2875790194b3482e31ee9e83561618e2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-24 09:25:25

从您共享的配置中。我在nutch-site.xml上看到了以下内容:

代码语言:javascript
复制
<property>
    <name>db.ignore.external.links</name>
    <value>true</value>
</property>

这实际上忽略了所有外部链接。在db-ignore-external-exemptions.txt文件上,您已经配置了一些豁免:

代码语言:javascript
复制
+(?i)\.(jpg|png|gif)$

但是为了使这些设置正常工作,您需要启用urlfilter-ignoreexempt插件。你可以看到这里是怎么做到的。

使用这种组合,您可以忽略所有外部链接,只需在CrawlDB中添加那些与豁免文件(在您的示例中的图像)上的规则匹配的链接。

由于您在Java进程中运行Nutch,我的建议是有一个独立的本地Nutch设置,您可以在这里测试您的配置。bin/nutch parsecheckerbin/nutch indexcheckerbin/nutch plugin对调试非常有帮助。您可以用特定的测试用例测试(使用这些命令)一些配置,而不需要启动整个爬行(节省很多时间)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55728418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档