从 https://uzmanpara.milliyet.com.tr/doviz-kurlari/ 解析货币兑换数据

Parsing currency exchange data from https://uzmanpara.milliyet.com.tr/doviz-kurlari/

我准备了程序并在帮助下编写了这段代码,但前 10 次它起作用然后它给了我 NULL 值,

String url = "https://uzmanpara.milliyet.com.tr/doviz-kurlari/";
//Document doc = Jsoup.parse(url);
Document doc = null;
try {
    doc = Jsoup.connect(url).timeout(6000).get();
} catch (IOException ex) {
    Logger.getLogger(den3.class.getName()).log(Level.SEVERE, null, ex);
}
int i = 0;
String[] currencyStr = new String[11];
String[] buyStr = new String[11];
String[] sellStr = new String[11];
Elements elements = doc.select(".borsaMain > div:nth-child(2) > div:nth-child(1) > table.table-markets");
for (Element element : elements) {
    Elements curreny = element.parent().select("td:nth-child(2)");
    Elements buy = element.parent().select("td:nth-child(3)");
    Elements sell = element.parent().select("td:nth-child(4)");
    System.out.println(i);
    currencyStr[i] = curreny.text();
    buyStr[i] = buy.text();
    sellStr[i] = sell.text();
    System.out.println(String.format("%s [buy=%s, sell=%s]",
            curreny.text(), buy.text(), sell.text()));
    i++;
}

for(i = 0; i < 11; i++){
    System.out.println("currency: " + currencyStr[i]);
    System.out.println("buy: " + buyStr[i]);
    System.out.println("sell: " + sellStr[i]);
}

这是代码,我想这是一个连接问题,但我无法解决它我使用 Netbeans,我是否必须更改 Netbeans 的连接属性,或者我是否必须在代码中添加更多内容

你能帮帮我吗?

连接没有问题。您的查询与页面结构不匹配。

在您页面的某处,有一个带有 class borsaMain 的元素,它有一个带有 class detL 的直接子元素。然后detL的后代树中的某个地方,有你的table。您可以将其编写为以下 CSS 元素选择器查询:

.borsaMain > .detL table

结果中会有两个表,但我怀疑您正在寻找第一个。

所以基本上,你想要这样的东西:

Element table = doc.selectFirst(".borsaMain > .detL table");
for (Element row : table.select("tr:has(td)")) {
    // your existing loop code
}