Дамп иностранных изображений с помощью Nutch - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь сбросить весь контент сайта с помощью Apache Nutch.Он отлично работает для html-страниц и изображений из одного домена, но не создает дамп изображений с других сайтов, например, если у меня есть сайт с доменом foo.bar с содержанием:

<html>
<body>
  <img src="http://foo.bar/img"/>
  <img src="http://another.domain/img"/>
</body>
</html>

Nutch будет сбрасывать толькопервое изображение (foo.bar/img), но не второе (another.domain/img).

Сейчас я использую почти стандартную конфигурацию.Как настроить Nutch для извлечения чужих изображений из других доменов?

ОБНОВЛЕНИЕ: Я запускаю Nutch из Java-кода с 4 циклами анализа, это мой код Nutch: https://gist.github.com/g4s8/2875790194b3482e31ee9e83561618e2

1 Ответ

1 голос
/ 24 апреля 2019

Из конфига, которым вы поделились. Я вижу, что на nutch-site.xml у вас есть следующее:

<property>
    <name>db.ignore.external.links</name>
    <value>true</value>
</property>

Это эффективно игнорирует все внешние ссылки. В файле db-ignore-external-exemptions.txt вы настроили несколько исключений:

+(?i)\.(jpg|png|gif)$

Но для того, чтобы эти настройки работали, вам нужно включить плагин urlfilter-ignoreexempt. Вы можете видеть, как здесь .

С помощью этой комбинации вы можете просто игнорировать все внешние ссылки и просто добавлять в CrawlDB те, которые соответствуют правилам в файлах исключений (изображения в вашем случае).

Поскольку вы запускаете Nutch в рамках процесса Java, я советую установить автономную локальную настройку Nutch, в которой вы можете протестировать свою конфигурацию. bin/nutch parsechecker, bin/nutch indexchecker и bin/nutch plugin очень полезны для отладки. Вы можете протестировать (используя эти команды) некоторые конфигурации с конкретными тестовыми примерами без необходимости запуска всего обхода (экономит много времени).

...