Frage von Tomahawk300, 75

Mit Jsoup in Eclipse einen Wert aus einem Java script bekomment?

        Elements tags = site.getAllElements();

Ich habe bisher das, aber es get-tet nicht alle elemente eines java scriptes, aus die die Seite fast ausschließlich besteht. Was kann ich machen ? Ichbenutze Jsoup Library in Eclipse

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von KnusperPudding, Community-Experte für Java, 42

Kannst du einen Link auf die Seite oder zumindest den Quelltext der Seite bereitstellen (am besten via pastie.org / pastebin.com).

Damit man dir helfen kann, braucht man schon konkretere Informationen.

Kommentar von Tomahawk300 ,

ja, die seite ist https://www.csgocrash.com/play/1 , mir ist langweilig und ich versuche einfach nur zur übung statistiken zu erstellen.

Kommentar von Tomahawk300 ,

Hast du noch eine antwort ?

Kommentar von KnusperPudding ,

Ja, bei deiner konkreten Seite reicht JSoup nicht aus. - Du brauchst zum auslesen hiervon härtere Mittel wie Selenium oder HtmlUnit.

Kommentar von Tomahawk300 ,

Ok, ich habe mir die .jar datei heruntergeladen ind in mein eclipse eingebunden, wie gehe ich jetzt vor ? hast du eine tutorial o.ä. das so ähnlich wie mein Problem ist ?

Kommentar von KnusperPudding ,

Naja, ich selbst nutze Selenium um mit Websites zu interagieren. - Aber du willst ja nur generierte Werte auslesen. Hier wirst du das "Problem" haben, dass du eben jeweils immer ein Browserfenster hast. 

Müsste gucken wie es mit HtmlUnit aussieht.

Kommentar von Tomahawk300 ,

Oh, dann werde ich mir Selenium holen. Kannst du mir dafür passende tuts geben?

Kommentar von KnusperPudding ,

Selenium ist extrem leicht. Tutorials braucht es eigentlich nicht.

Du instanziierst einen Webdriver. Gibst die URL, wartest ggf. bis der wert das erste mal auf der Website erscheinst und holst dir das Element über XPath.

WebDriver driver = new FirefoxDriver();
driver.get("https://www.csgocrash.com/play/1");
TimeUnit.SECONDS.sleep(5);
WebElement element = driver.findElement(By.xpath("//*[@id=\"chart-inner-container\"]/div[2]/span[2]"));
driver.close();
System.out.println(element.getText());

XPath = Eine Schreibweise um eine Node exakt an einer Stelle in einem HTML Code finden zu können.

Wenn du in der Developer Console bist, findest du oft in der Rechten Maustaste: "Copy-> Copy XPath" (Zumindest hab ich das im Chrome)

Kommentar von Tomahawk300 ,

Ich habe zwar alle .jars eingebunden, und bekomme auch keine fehler im code, aber wenn Ich versuche das programm auszuführen kommt die fehlermeldung "The path to the driver executable must be set by the webdriver.opera.driver system property" , Ich denke dass ich für Opera noch ein Plugin ö.ä. installieren muss, wie genau mache ich das ? Im quellcode habe ich OperaDriver anstatt firefox benutzt wie gesagt das sollte eignetlich klappen

Kommentar von KnusperPudding ,

Kommt eben auf die Installation an. 

Bei dir konkret heißt es, den Pfad direkt anzugeben. z.b. so:

DesiredCapabilities c = DesiredCapabilities.opera();
c.setCapability("opera.binary", "/path/to/opera");
WebDriver driver = new OperaDriver(c);
Kommentar von Tomahawk300 ,

Wenn ich das einfach so einsetze, kommt der gleiche fehler immernoch.

c1.setCapability("opera.binary", "C:/Program Files (x86)/Opera");

Ist das so richtig, was genau muss ich in die anführungszeichen setzten?

Kommentar von KnusperPudding ,

Ich denke du musst die Opera.exe angeben, nicht nur den Pfad zum darüber liegenden Ordner.

Kommentar von Tomahawk300 ,

Ne , funktioniert alles nicht. Anscheinend ist es doch nicht so leicht. Ich habe es auch mit chrome versucht und alles verändert und wieder wie am anfang und es klappt immer noch nicht. Welchen browser benutzt du und kannst du mir irgend einen code geben den du gerade hast um die funktionalität zu prüfen?

Kommentar von KnusperPudding ,

Ich nutze den FirefoxDriver wie im Beispiel oben angegeben. Allerdings habe ich Firefox eben regulär installiert und muss daher eben keine expliziten Pfadangaben machen.

Das Problem bei Chrome ist bekannt, da sollte es aber ausreichen den Chromedriver von Selenium zu installieren:

http://chromedriver.storage.googleapis.com/index.html?path=2.21/

Kommentar von Tomahawk300 ,

Habe es bereits gefixed, den path für den driver den man sich extra downloaden muss muss man über System.setProperty("webdriver.chrome.driver", "C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe");

oder so ähnlich angeben.

Antwort
von Tschoo, 6

Hallo!

JSOUP ist meines Wissens um XML-Bäume(Dateien) zu lesen ...

Gruß

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten