He realizado este codigo, y realmente funciona, pero me interesaría hacerlo de manera automática y que los resultados se fueran guardando en ficheros o algo parecido.
Alguna idea, por favor??
Código:
import com.playence.solr.indexer.Texto;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.io.SyndFeedInput;
import com.sun.syndication.io.XmlReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.apache.solr.common.SolrInputDocument;
public class Consumer {
SyndFeed feed;
Texto tex= new Texto();
public Consumer() {
super();
try {
URL feedUrl = new URL("http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/front_page/rss.xml");
SyndFeedInput input = new SyndFeedInput();
feed = input.build(new XmlReader(feedUrl));
} catch (Exception ex) {
ex.printStackTrace();
System.out.println("ERROR: "+ex.getMessage());
}
}
public Collection<SolrInputDocument> print () {
//feeds list
List<SyndEntry> entradas = new ArrayList<SyndEntry>();
entradas = feed.getEntries();
//Crear un array de documentos
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
for (SyndEntry entrada : entradas) {
//Creamos un documento a partir d elas entradas
SolrInputDocument doc = new SolrInputDocument();
System.out.println("Título.: " + entrada.getTitle() );
doc.addField( "id", entrada.getTitle() );
System.out.println("Descripción.: " + entrada.getDescription() );
doc.addField("description", entrada.getDescription());
System.out.println("Nombre.: " + entrada.getDescription() );
doc.addField("name", entrada.getContents());
System.out.println("Link.......: " + entrada.getLink() );
doc.addField( "links", entrada.getLink() );
//Añadimos el documento al array
docs.add(doc);
}
return docs;
}
}