Domanda

Sto avendo problemi usando JSOUP in un componente tJavaRow in Talend.

Ecco il mio lavoro:

Layout di lavoro

Attraverso tLibraryLoad Carico i file .jar per JSOUP e la libreria Java.Io.File e quindi importarli nel componente tJavaRow_2:

import java.io.File;
import java.io.File;
import org.jsoup.Jsoup;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import org.jsoup.select.Elements;
.

e quindi provare a eseguire il seguente codice nella parte principale del tJavaRow_2:

Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt", "utf-8");
Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt", "utf-8");
        Elements el = document.select(".gutter10");
        Elements el = document.select(".gutter10");
        String result = el.text();
        String result = el.text();


        if(result.length() > 20)
        if(result.length() > 20)
            {context.lastpage = true;};
.

sembra logico per me finora. Ma ottengo questo errore:

Talend Error

Puoi aiutarmi a risolvere questo problema?Non capisco cosa fare da questo punto in poi.

Appendice : codice Java che funziona in Eclipse:

import java.io.File;
import java.io.File;
//import java.util.regex.*;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class regextest  {

    public static boolean regExChecker() throws IOException 
    {
        boolean x = false;
        Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/absolventa_testquery.txt"), "utf-8");
        Elements el = document.select(".gutter10");
        String result = el.text();

        if(result.length() > 20)
            {x = true;};

        //System.out.println(x);
        return x;
    }

    public static void main(String[] args) throws IOException{
        System.out.println(regExChecker()); 
    }
}
.

È stato utile?

Soluzione

Manca una staffa di chiusura nel blocco del tuo codice.La tua prima riga dovrebbe essere:

Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8");
.

Come lo è, stai costruendo un file dal percorso "C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8" e quindi passa quell'oggetto file (non sarà un oggetto file appropriato ma per qualche motivo il compilatore non ha individuato questo) al metodo Parsedi jsoup.

Guardando Documentazione di jsoup L'unica chiamata del metodo per analizzare che è un singoloIl valore è quando si passa un documento HTML in una stringa ad esso.Quindi si aspetta una stringa e invece riceve un file (rotto).

Il secondo errore è quello che lo punta davvero dicendo che ti manca una staffa di chiusura per la variabileItilizzazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top