Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Jsoup从特定html源提取值_Java_Html_Parsing_Jsoup - Fatal编程技术网

Java 使用Jsoup从特定html源提取值

Java 使用Jsoup从特定html源提取值,java,html,parsing,jsoup,Java,Html,Parsing,Jsoup,我试图做的是从中提取所有货币值及其名称。并将它们存储在两个不同的阵列中 我发现唯一与我的问题有关的是以下代码: public static void main(String[] args) throws IOException { String url = ""; Document doc = Jsoup.connect(url).get(); Element content = doc.select("").first(); } 但是我很难将它放入一个for循环,以便

我试图做的是从中提取所有货币值及其名称。并将它们存储在两个不同的阵列中

我发现唯一与我的问题有关的是以下代码:

public static void main(String[] args) throws IOException {
    String url = "";
    Document doc = Jsoup.connect(url).get();
    Element content = doc.select("").first();
}
但是我很难将它放入一个for循环,以便程序找到所有的值及其名称,并找到正确的元素,它位于
doc.select(element)
部分,因为我并不真正了解HTML

所以我要找的是这样的东西:

两个不同的方法,一个查找货币值,另一个查找货币名称,两个方法都将其值放入正确的数组中


最重要的是找到正确的元素,因为我可以自己做其余的事情。我怎样才能找到正确的元素来从中提取值

您可以使用Jsoup从提供的网站提取所有预期数据。首先,需要使用以下选择器选择所有表行:

table.ratesTable > tbody > tr
接下来,对于每一行,您必须选择
td
元素(每一行有3个表格单元格),并且您可以将这些单元格中的值分配给您想要的任何变量。您的代码可能如下所示:

Document doc = Jsoup.connect("http://www.x-rates.com/table/?from=USD&amount=1").get();

Elements rows = doc.select("table.ratesTable > tbody > tr");

for (Element row : rows) {
    Elements tds = row.select("td");

    String currency = tds.get(0).text();
    Double rate1 = Double.valueOf(tds.get(1).text());
    Double rate2 = Double.valueOf(tds.get(2).text());

    System.out.printf("Currency: %s, rate1: %s, rate2: %s%n", currency, rate1, rate2);
}
此程序产生以下控制台输出:

Currency: Euro, rate1: 0.845569, rate2: 1.182635
Currency: British Pound, rate1: 0.768631, rate2: 1.301014
Currency: Indian Rupee, rate1: 64.134227, rate2: 0.015592
Currency: Australian Dollar, rate1: 1.266043, rate2: 0.789863
Currency: Canadian Dollar, rate1: 1.267137, rate2: 0.789181
Currency: Singapore Dollar, rate1: 1.360245, rate2: 0.735162
Currency: Swiss Franc, rate1: 0.96141, rate2: 1.040139
Currency: Malaysian Ringgit, rate1: 4.298091, rate2: 0.232661
Currency: Japanese Yen, rate1: 109.110914, rate2: 0.009165
Currency: Chinese Yuan Renminbi, rate1: 6.661812, rate2: 0.150109
Currency: Argentine Peso, rate1: 17.74499, rate2: 0.056354
Currency: Australian Dollar, rate1: 1.266043, rate2: 0.789863
Currency: Bahraini Dinar, rate1: 0.377148, rate2: 2.651478
Currency: Botswana Pula, rate1: 10.354673, rate2: 0.096575
Currency: Brazilian Real, rate1: 3.194036, rate2: 0.313084
Currency: Bruneian Dollar, rate1: 1.360245, rate2: 0.735162
Currency: Bulgarian Lev, rate1: 1.662835, rate2: 0.601383
Currency: Canadian Dollar, rate1: 1.267137, rate2: 0.789181
Currency: Chilean Peso, rate1: 646.170017, rate2: 0.001548
Currency: Chinese Yuan Renminbi, rate1: 6.661812, rate2: 0.150109
Currency: Colombian Peso, rate1: 2973.600291, rate2: 3.36E-4
Currency: Croatian Kuna, rate1: 6.248125, rate2: 0.160048
Currency: Czech Koruna, rate1: 22.130355, rate2: 0.045187
Currency: Danish Krone, rate1: 6.332396, rate2: 0.157918
Currency: Euro, rate1: 0.845569, rate2: 1.182635
Currency: Hong Kong Dollar, rate1: 7.8192, rate2: 0.12789
Currency: Hungarian Forint, rate1: 257.81906, rate2: 0.003879
Currency: Icelandic Krona, rate1: 105.635027, rate2: 0.009467
Currency: Indian Rupee, rate1: 64.134227, rate2: 0.015592
Currency: Indonesian Rupiah, rate1: 13357.499908, rate2: 7.5E-5
Currency: Iranian Rial, rate1: 32849.5, rate2: 3.0E-5
Currency: Israeli Shekel, rate1: 3.586513, rate2: 0.278822
Currency: Japanese Yen, rate1: 109.110914, rate2: 0.009165
Currency: Kazakhstani Tenge, rate1: 332.672501, rate2: 0.003006
Currency: South Korean Won, rate1: 1143.773759, rate2: 8.74E-4
Currency: Kuwaiti Dinar, rate1: 0.302319, rate2: 3.307765
Currency: Libyan Dinar, rate1: 1.37005, rate2: 0.7299
Currency: Malaysian Ringgit, rate1: 4.298091, rate2: 0.232661
Currency: Mauritian Rupee, rate1: 33.552148, rate2: 0.029804
Currency: Mexican Peso, rate1: 17.835986, rate2: 0.056066
Currency: Nepalese Rupee, rate1: 102.352456, rate2: 0.00977
Currency: New Zealand Dollar, rate1: 1.366238, rate2: 0.731937
Currency: Norwegian Krone, rate1: 7.93064, rate2: 0.126093
Currency: Omani Rial, rate1: 0.384499, rate2: 2.600784
Currency: Pakistani Rupee, rate1: 105.360213, rate2: 0.009491
Currency: Philippine Peso, rate1: 51.055889, rate2: 0.019586
Currency: Polish Zloty, rate1: 3.627166, rate2: 0.275697
Currency: Qatari Riyal, rate1: 3.642217, rate2: 0.274558
Currency: Romanian New Leu, rate1: 3.871704, rate2: 0.258284
Currency: Russian Ruble, rate1: 59.885203, rate2: 0.016699
Currency: Saudi Arabian Riyal, rate1: 3.751954, rate2: 0.266528
Currency: Singapore Dollar, rate1: 1.360245, rate2: 0.735162
Currency: South African Rand, rate1: 13.467078, rate2: 0.074255
Currency: Sri Lankan Rupee, rate1: 153.070914, rate2: 0.006533
Currency: Swedish Krona, rate1: 8.140123, rate2: 0.122848
Currency: Swiss Franc, rate1: 0.96141, rate2: 1.040139
Currency: Taiwan New Dollar, rate1: 30.365433, rate2: 0.032932
Currency: Thai Baht, rate1: 33.201131, rate2: 0.030119
Currency: Trinidadian Dollar, rate1: 6.7275, rate2: 0.148644
Currency: Turkish Lira, rate1: 3.539571, rate2: 0.28252
Currency: Emirati Dirham, rate1: 3.674458, rate2: 0.272149
Currency: British Pound, rate1: 0.768631, rate2: 1.301014
Currency: Venezuelan Bolivar, rate1: 9.977002, rate2: 0.100231

我希望它能有所帮助。

您可以使用Jsoup从提供的网站中提取所有预期数据。首先,需要使用以下选择器选择所有表行:

table.ratesTable > tbody > tr
接下来,对于每一行,您必须选择
td
元素(每一行有3个表格单元格),并且您可以将这些单元格中的值分配给您想要的任何变量。您的代码可能如下所示:

Document doc = Jsoup.connect("http://www.x-rates.com/table/?from=USD&amount=1").get();

Elements rows = doc.select("table.ratesTable > tbody > tr");

for (Element row : rows) {
    Elements tds = row.select("td");

    String currency = tds.get(0).text();
    Double rate1 = Double.valueOf(tds.get(1).text());
    Double rate2 = Double.valueOf(tds.get(2).text());

    System.out.printf("Currency: %s, rate1: %s, rate2: %s%n", currency, rate1, rate2);
}
此程序产生以下控制台输出:

Currency: Euro, rate1: 0.845569, rate2: 1.182635
Currency: British Pound, rate1: 0.768631, rate2: 1.301014
Currency: Indian Rupee, rate1: 64.134227, rate2: 0.015592
Currency: Australian Dollar, rate1: 1.266043, rate2: 0.789863
Currency: Canadian Dollar, rate1: 1.267137, rate2: 0.789181
Currency: Singapore Dollar, rate1: 1.360245, rate2: 0.735162
Currency: Swiss Franc, rate1: 0.96141, rate2: 1.040139
Currency: Malaysian Ringgit, rate1: 4.298091, rate2: 0.232661
Currency: Japanese Yen, rate1: 109.110914, rate2: 0.009165
Currency: Chinese Yuan Renminbi, rate1: 6.661812, rate2: 0.150109
Currency: Argentine Peso, rate1: 17.74499, rate2: 0.056354
Currency: Australian Dollar, rate1: 1.266043, rate2: 0.789863
Currency: Bahraini Dinar, rate1: 0.377148, rate2: 2.651478
Currency: Botswana Pula, rate1: 10.354673, rate2: 0.096575
Currency: Brazilian Real, rate1: 3.194036, rate2: 0.313084
Currency: Bruneian Dollar, rate1: 1.360245, rate2: 0.735162
Currency: Bulgarian Lev, rate1: 1.662835, rate2: 0.601383
Currency: Canadian Dollar, rate1: 1.267137, rate2: 0.789181
Currency: Chilean Peso, rate1: 646.170017, rate2: 0.001548
Currency: Chinese Yuan Renminbi, rate1: 6.661812, rate2: 0.150109
Currency: Colombian Peso, rate1: 2973.600291, rate2: 3.36E-4
Currency: Croatian Kuna, rate1: 6.248125, rate2: 0.160048
Currency: Czech Koruna, rate1: 22.130355, rate2: 0.045187
Currency: Danish Krone, rate1: 6.332396, rate2: 0.157918
Currency: Euro, rate1: 0.845569, rate2: 1.182635
Currency: Hong Kong Dollar, rate1: 7.8192, rate2: 0.12789
Currency: Hungarian Forint, rate1: 257.81906, rate2: 0.003879
Currency: Icelandic Krona, rate1: 105.635027, rate2: 0.009467
Currency: Indian Rupee, rate1: 64.134227, rate2: 0.015592
Currency: Indonesian Rupiah, rate1: 13357.499908, rate2: 7.5E-5
Currency: Iranian Rial, rate1: 32849.5, rate2: 3.0E-5
Currency: Israeli Shekel, rate1: 3.586513, rate2: 0.278822
Currency: Japanese Yen, rate1: 109.110914, rate2: 0.009165
Currency: Kazakhstani Tenge, rate1: 332.672501, rate2: 0.003006
Currency: South Korean Won, rate1: 1143.773759, rate2: 8.74E-4
Currency: Kuwaiti Dinar, rate1: 0.302319, rate2: 3.307765
Currency: Libyan Dinar, rate1: 1.37005, rate2: 0.7299
Currency: Malaysian Ringgit, rate1: 4.298091, rate2: 0.232661
Currency: Mauritian Rupee, rate1: 33.552148, rate2: 0.029804
Currency: Mexican Peso, rate1: 17.835986, rate2: 0.056066
Currency: Nepalese Rupee, rate1: 102.352456, rate2: 0.00977
Currency: New Zealand Dollar, rate1: 1.366238, rate2: 0.731937
Currency: Norwegian Krone, rate1: 7.93064, rate2: 0.126093
Currency: Omani Rial, rate1: 0.384499, rate2: 2.600784
Currency: Pakistani Rupee, rate1: 105.360213, rate2: 0.009491
Currency: Philippine Peso, rate1: 51.055889, rate2: 0.019586
Currency: Polish Zloty, rate1: 3.627166, rate2: 0.275697
Currency: Qatari Riyal, rate1: 3.642217, rate2: 0.274558
Currency: Romanian New Leu, rate1: 3.871704, rate2: 0.258284
Currency: Russian Ruble, rate1: 59.885203, rate2: 0.016699
Currency: Saudi Arabian Riyal, rate1: 3.751954, rate2: 0.266528
Currency: Singapore Dollar, rate1: 1.360245, rate2: 0.735162
Currency: South African Rand, rate1: 13.467078, rate2: 0.074255
Currency: Sri Lankan Rupee, rate1: 153.070914, rate2: 0.006533
Currency: Swedish Krona, rate1: 8.140123, rate2: 0.122848
Currency: Swiss Franc, rate1: 0.96141, rate2: 1.040139
Currency: Taiwan New Dollar, rate1: 30.365433, rate2: 0.032932
Currency: Thai Baht, rate1: 33.201131, rate2: 0.030119
Currency: Trinidadian Dollar, rate1: 6.7275, rate2: 0.148644
Currency: Turkish Lira, rate1: 3.539571, rate2: 0.28252
Currency: Emirati Dirham, rate1: 3.674458, rate2: 0.272149
Currency: British Pound, rate1: 0.768631, rate2: 1.301014
Currency: Venezuelan Bolivar, rate1: 9.977002, rate2: 0.100231

希望有帮助。

这太完美了@SzymonStepniak非常感谢你@OmerHen很酷,我很高兴能帮助你:)这太完美了@SzymonStepniak非常感谢你@OmerHen很酷,我很高兴能帮助你:)