0

Ich möchte nur bestimmte Domains auf Nutch crawlen. Dazu stelle ich die db.ignore.external.links zu wahr wie es in diesem FAQ linkWie verhindert man das Crawlen externer Links mit Apache Nutch?

gesagt wurde das Problem nutch Start ist nur Links in der Seed-Liste zu kriechen. Zum Beispiel, wenn ich "nutch.apache.org" in seed.txt lege, findet es nur dieselbe URL (nutch.apache.org).

Ich bekomme das Ergebnis durch Ausführen von Crawl-Skript mit 200 Tiefe. Und es ist mit einem Zyklus beendet und erzeugt den Ausgang darunter.

Wie kann ich dieses Problem lösen?

Ich bin mit Nutch 1,11

Generator: starting at 2016-04-05 22:36:16 
Generator: Selecting best-scoring urls due for fetch. 
Generator: filtering: false 
Generator: normalizing: true 
Generator: topN: 50000 
Generator: 0 records selected for fetching, exiting ... 
Generate returned 1 (no new segments created) 
Escaping loop: no more URLs to fetch now 

Mit freundlichen Grüßen

Antwort

2

Sie wollen nur die Seiten von einer bestimmten Domain holen.

Sie haben bereits versucht, db.ignore.external.links, aber dies schränken alles außer die seek.txt URLs.

sollten Sie versuchen, conf/regex-urlfilter.txt wie in dem Beispiel der nutch1 tutorial:

+^http://([a-z0-9]*\.)*your.specific.domain.org/ 
1

Sind Sie "Crawl" Skript? Wenn ja, stelle sicher, dass du level gibst, das größer als 1 ist. Wenn du so etwas ausführst "bin/crawl seedfoldername crawlDb http://solrIP:solrPort/solr 1". Es wird nur URLs crawlen, die in der seed.txt

aufgeführt sind, und zum Crawlen bestimmter Domäne können Sie regex-urfiltee.txt-Datei verwenden.

+0

Ja, ich bin mit Crawling-Skript mit 200 Tiefen. Wenn ich die URL-Filter-Ergebnisse bearbeiten, sind die gleichen Ergebnisse wie zuvor. –

+1

Wenn Sie das Crawl-Skript erneut ausführen, rate ich dazu, Ihren crawldb-Ordner zu löschen und dann erneut auszuführen. – AVINASH

+0

und stellen Sie sicher, dass Ihre Seed-URL-Seite andere Links enthält, in die der Crawler hineinkriechen kann – AVINASH

0

Add folgende Eigenschaft in nutch-site.xml

<property> 
<name>db.ignore.external.links</name> 
<value>true</value> 
<description>If true, outlinks leading from a page to external hosts will be ignored. This is an effective way to limit the crawl to include only initially injected hosts, without creating complex URLFilters. </description> 
</property>