Jsoup

  • Themenstarter bartholomaeus87
  • Beginndatum
Diskutiere Jsoup im Java Basics - Anfänger-Themen Bereich.
B

bartholomaeus87

Hallo zusammen,

ich möchte gern mit JSoup Daten von einer Webseite auslesen. Auch nur einmal am Tag, weswegen es kein Thema mit ungewöhnlich hohen Requests geben sollte.
Auf dieser Seite sind mehrere .dataTables und ich möchte nur die erste auslesen. Leider bin ich an dieser Stelle nicht weitergekommen. Ich kann alle auslesen, aber das will ich nicht.

Hier ist mein Code. Die URL geht daraus hervor:

Java:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class WebScrapingTest {

    public static void main(String[] args) {
        
        final String url = "https://www.eurexchange.com/exchange-de/produkte/equ/opt/47910!quotesSingleViewOption?callPut=Put&maturityDate=202008";
        
        try {
            final Document doc = Jsoup.connect(url).get();
            
            for (Element row : doc.select("table.dataTable tr")) {
                final String test = row.select("td.quotesMaxTime1596213805").text();
                System.out.println(test);
            }
        } catch (Exception ex){
            ex.printStackTrace();
        }

    }

}
Mein Problem liegt in den CSS-Style Tags in der select()-Methode. Hier greife ich alle Zeilen (tr) aus der .dataTable aus. Nur dann halt aus allen vorhandenen .dataTables.
Die gewünschte Tabelle hat noch einen tbody mit einer ID. Deswegen dachte ich, ich könnte sowas schreiben wie "table.dataTable tbody#... tr). Aber das funktioniert nicht.

Was mache ich falsch? 😅
 
mihe7

mihe7

Auf dieser Seite sind mehrere .dataTables und ich möchte nur die erste auslesen. Leider bin ich an dieser Stelle nicht weitergekommen. Ich kann alle auslesen, aber das will ich nicht.
Ich würde es mal versuchen, indem ich den Spaß auf zwei selects aufteile: doc.select("table.dataTable").first().select("tr")

Die gewünschte Tabelle hat noch einen tbody mit einer ID. Deswegen dachte ich, ich könnte sowas schreiben wie "table.dataTable tbody#... tr). Aber das funktioniert nicht.
Mit einer ID wirds noch leichter: doc.select("#<id> tr"), wobei <id> natürlich durch die betreffende ID zu ersetzen wäre.
 
Thema: 

Jsoup

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben