2016-08-04 29 views
2

Ich habe versucht, Nachrichtenartikel zu kriechen aus den Links: -Nutch Crawler nicht Nachrichten Artikelinhalt abrufen

Article 1

Article 2

Aber ich bin nicht den Text aus der Seite bekommen zum Inhaltsfeld im Index (elasticsearch).

Ergebnis des Crawling ist: -

{ 
    "took": 2, 
    "timed_out": false, 
    "_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
    }, 
    "hits": { 
    "total": 2, 
    "max_score": 0.09492774, 
    "hits": [ 
     { 
     "_index": "news", 
     "_type": "doc", 
     "_id": "http://www.bloomberg.com/press-releases/2016-07-08/network-1-announces-settlement-of-patent-litigation-with-apple-inc", 
     "_score": 0.09492774, 
     "_source": { 
      "tstamp": "2016-08-04T07:21:59.614Z", 
      "segment": "20160804125156", 
      "digest": "d583a81c0c4c7510f5c842ea3b557992", 
      "host": "www.bloomberg.com", 
      "boost": "1.0", 
      "id": "http://www.bloomberg.com/press-releases/2016-07-08/network-1-announces-settlement-of-patent-litigation-with-apple-inc", 
      "url": "http://www.bloomberg.com/press-releases/2016-07-08/network-1-announces-settlement-of-patent-litigation-with-apple-inc", 
      "content": "" 
     } 
     }, 
     { 
     "_index": "news", 
     "_type": "doc", 
     "_id": "http://www.bloomberg.com/press-releases/2016-07-05/apple-donate-life-america-bring-national-organ-donor-registration-to-iphone", 
     "_score": 0.009845509, 
     "_source": { 
      "tstamp": "2016-08-04T07:22:05.708Z", 
      "segment": "20160804125156", 
      "digest": "2a94a32ffffd0e03647928755e055e30", 
      "host": "www.bloomberg.com", 
      "boost": "1.0", 
      "id": "http://www.bloomberg.com/press-releases/2016-07-05/apple-donate-life-america-bring-national-organ-donor-registration-to-iphone", 
      "url": "http://www.bloomberg.com/press-releases/2016-07-05/apple-donate-life-america-bring-national-organ-donor-registration-to-iphone", 
      "content": "" 
     } 
     } 
    ] 
    } 
} 

in denen wir feststellen, dass Inhaltsfeld ist leer. Ich habe mit verschiedenen Optionen in nutch-site.txt versucht. Aber das Ergebnis bleibt gleich. Bitte helfen Sie mir dabei.

Antwort

3

Ich weiß nicht, warum nutch Artikelinhalte nicht extrahieren konnte. Aber ich habe einen Workaround mit Jsoup gefunden. Ich habe ein benutzerdefiniertes Analyse-Filter-Plugin entwickelt, das das gesamte Dokument analysiert und den Parse-Text in ParseResult, der vom Parser-Filter zurückgegeben wird, einstellt. Und verwendet meine Gewohnheit-Parse-Filter von Parse-html-Plugin ersetzt in parse-plugins.xml

Es wird etwas sein, wie: -

document = Jsoup.parse(new String(content.getContent(),"UTF-8"),content.getUrl()); 
    parse = parseResult.get(content.getUrl()); 
    status = parse.getData().getStatus(); 
    title = document.title(); 
    parseData = new ParseData(status, title,parse.getData().getOutlinks(), parse.getData().getContentMeta(), parse.getData().getParseMeta()); 
    parseResult.put(content.getUrl(), new ParseText(document.body().text()), parseData); 
1

Nur eine Antwort außerhalb des Kontexts, aber versuchen Sie es mit Apache ManifoldCF. Es bietet integrierten Connector für die elastische Suche und einen besser protokollierten Verlauf, um herauszufinden, warum die Daten nicht indiziert wurden. Im Connector-Abschnitt von ManifoldCF können Sie angeben, in welchem ​​Feld Ihr Inhalt indexiert werden soll. Es ist eine gute Open-Source-Alternative, die Sie ausprobieren können.

+0

Thanks :). Ich werde es mir ansehen. – Sachin

+0

Ich möchte Links innerhalb eines bestimmten div oder eines anderen Tags auswählen und den Inhalt dieser Links abrufen und sie indexieren. Ob wir so etwas mit vielen machen können – Sachin