한국수출입은행에서, 현재 환율을 실시간으로 제공합니다.

https://www.koreaexim.go.kr/site/program/financial/exchangeJSON?data=AP01&authkey=xxxxxxx&searchdate=20190314

인증키를 발급받아 요청을 할 경우, 해당 환율이 나오게 됩니다. 테스트 시 나오는 결과값입니다.

[{"result":1,"cur_unit":"AED","ttb":"305.77","tts":"311.94","deal_bas_r":"308.86","bkpr":"308","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"308","kftc_deal_bas_r":"308.86","cur_nm":"아랍에미리트 디르함"},{"result":1,"cur_unit":"AUD","ttb":"794.74","tts":"810.79","deal_bas_r":"802.77","bkpr":"802","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"802","kftc_deal_bas_r":"802.77","cur_nm":"호주 달러"},{"result":1,"cur_unit":"BHD","ttb":"2,979.02","tts":"3,039.21","deal_bas_r":"3,009.12","bkpr":"3,009","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"3,009","kftc_deal_bas_r":"3,009.12","cur_nm":"바레인 디나르"},{"result":1,"cur_unit":"CAD","ttb":"838.57","tts":"855.52","deal_bas_r":"847.05","bkpr":"847","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"847","kftc_deal_bas_r":"847.05","cur_nm":"캐나다 달러"},{"result":1,"cur_unit":"CHF","ttb":"1,112.36","tts":"1,134.83","deal_bas_r":"1,123.6","bkpr":"1,123","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"1,123","kftc_deal_bas_r":"1,123.6","cur_nm":"스위스 프랑"},{"result":1,"cur_unit":"CNH","ttb":"166.78","tts":"170.15","deal_bas_r":"168.47","bkpr":"168","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"168","kftc_deal_bas_r":"168.47","cur_nm":"위안화"},{"result":1,"cur_unit":"DKK","ttb":"169.62","tts":"173.05","deal_bas_r":"171.34","bkpr":"171","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"171","kftc_deal_bas_r":"171.34","cur_nm":"덴마아크 크로네"},{"result":1,"cur_unit":"EUR","ttb":"1,265.45","tts":"1,291.02","deal_bas_r":"1,278.24","bkpr":"1,278","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"1,278","kftc_deal_bas_r":"1,278.24","cur_nm":"유로"},{"result":1,"cur_unit":"GBP","ttb":"1,488.12","tts":"1,518.19","deal_bas_r":"1,503.16","bkpr":"1,503","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"1,503","kftc_deal_bas_r":"1,503.16","cur_nm":"영국 파운드"},{"result":1,"cur_unit":"HKD","ttb":"143.08","tts":"145.97","deal_bas_r":"144.53","bkpr":"144","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"144","kftc_deal_bas_r":"144.53","cur_nm":"홍콩 달러"},{"result":1,"cur_unit":"IDR(100)","ttb":"7.86","tts":"8.01","deal_bas_r":"7.94","bkpr":"7","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"7","kftc_deal_bas_r":"7.94","cur_nm":"인도네시아 루피아"},{"result":1,"cur_unit":"JPY(100)","ttb":"1,009.25","tts":"1,029.64","deal_bas_r":"1,019.45","bkpr":"1,019","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"1,019","kftc_deal_bas_r":"1,019.45","cur_nm":"일본 옌"},{"result":1,"cur_unit":"KRW","ttb":"0","tts":"0","deal_bas_r":"1","bkpr":"1","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"1","kftc_deal_bas_r":"1","cur_nm":"한국 원"},{"result":1,"cur_unit":"KWD","ttb":"3,694.95","tts":"3,769.6","deal_bas_r":"3,732.28","bkpr":"3,732","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"3,732","kftc_deal_bas_r":"3,732.28","cur_nm":"쿠웨이트 디나르"},{"result":1,"cur_unit":"MYR","ttb":"274.64","tts":"280.19","deal_bas_r":"277.42","bkpr":"277","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"277","kftc_deal_bas_r":"277.42","cur_nm":"말레이지아 링기트"},{"result":1,"cur_unit":"NOK","ttb":"129.84","tts":"132.47","deal_bas_r":"131.16","bkpr":"131","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"131","kftc_deal_bas_r":"131.16","cur_nm":"노르웨이 크로네"},{"result":1,"cur_unit":"NZD","ttb":"768.01","tts":"783.52","deal_bas_r":"775.77","bkpr":"775","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"775","kftc_deal_bas_r":"775.77","cur_nm":"뉴질랜드 달러"},{"result":1,"cur_unit":"SAR","ttb":"299.48","tts":"305.53","deal_bas_r":"302.51","bkpr":"302","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"302","kftc_deal_bas_r":"302.51","cur_nm":"사우디 리얄"},{"result":1,"cur_unit":"SEK","ttb":"119.95","tts":"122.38","deal_bas_r":"121.17","bkpr":"121","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"121","kftc_deal_bas_r":"121.17","cur_nm":"스웨덴 크로나"},{"result":1,"cur_unit":"SGD","ttb":"827.49","tts":"844.2","deal_bas_r":"835.85","bkpr":"835","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"835","kftc_deal_bas_r":"835.85","cur_nm":"싱가포르 달러"},{"result":1,"cur_unit":"THB","ttb":"35.46","tts":"36.17","deal_bas_r":"35.82","bkpr":"35","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"35","kftc_deal_bas_r":"35.82","cur_nm":"태국 바트"},{"result":1,"cur_unit":"USD","ttb":"1,123.15","tts":"1,145.84","deal_bas_r":"1,134.5","bkpr":"1,134","yy_efee_r":"0","ten_dd_efee_r":"0","kftc_bkpr":"1,134","kftc_deal_bas_r":"1,134.5","cur_nm":"미국 달러"}]

만약 미국 달러가 필요할 경우,

https://www.koreaexim.go.kr/site/program/financial/exchangeJSON?data=AP01&authkey=xxxx&searchdate=20190312&cur_unit=USD

USD를 요청하면됩니다. 정확한 스펙문서는,

https://www.koreaexim.go.kr/site/program/openapi/openApiList?menuid=001003002002001 에 정의되어있습니다.

추가적으로 네이버 환율 목차를 크롤링하거나, 하나은행 API를 사용할 수 있습니다.

호출 주소는 http://fx.kebhana.com/FER1101M.web 다음과 같습니다! https://quotation-api-cdn.dunamu.com/v1/forex/recent?codes=FRX.KRWUSD

 { "통화명": "미국 USD", "현찰사실때":"1194.03", "현찰파실때":"1152.97", "송금_전신환보내실때":"1185.00", "송금_전신환받으실때":"1162.00", "매매기준율":"1173.50" }, { "통화명": "일본 JPY 100", "현찰사실때":"1136.80", "현찰파실때":"1097.70", "송금_전신환보내실때":"1128.19", "송금_전신환받으실때":"1106.31", "매매기준율":"1117.25" }, { "통화명": "유로 EUR", "현찰사실때":"1408.45", "현찰파실때":"1353.49", "송금_전신환보내실때":"1394.77", "송금_전신환받으실때":"1367.17", "매매기준율":"1380.97" }, { "통화명": "중국 CNY", "현찰사실때":"182.00", "현찰파실때":"164.68", "송금_전신환보내실때":"175.07", "송금_전신환받으실때":"171.61", "매매기준율":"173.34" }, { "통화명": "홍콩 HKD", "현찰사실때":"154.40", "현찰파실때":"148.44", "송금_전신환보내실때":"152.93", "송금_전신환받으실때":"149.91", "매매기준율":"151.42" }, { "통화명": "태국 THB", "현찰사실때":"39.48", "현찰파실때":"35.35", "송금_전신환보내실때":"37.97", "송금_전신환받으실때":"37.23", "매매기준율":"37.60" }, { "통화명": "대만 TWD", "현찰사실때":"45.54", "현찰파실때":"37.46", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"40.27" }, { "통화명": "필리핀 PHP", "현찰사실때":"26.62", "현찰파실때":"22.22", "송금_전신환보내실때":"24.44", "송금_전신환받으실때":"23.96", "매매기준율":"24.20" }, { "통화명": "싱가포르 SGD", "현찰사실때":"879.10", "현찰파실때":"844.80", "송금_전신환보내실때":"870.56", "송금_전신환받으실때":"853.34", "매매기준율":"861.95" }, { "통화명": "호주 AUD", "현찰사실때":"870.36", "현찰파실때":"836.74", "송금_전신환보내실때":"862.08", "송금_전신환받으실때":"845.02", "매매기준율":"853.55" }, { "통화명": "베트남 VND 100", "현찰사실때":"5.65", "현찰파실때":"4.47", "송금_전신환보내실때":"5.11", "송금_전신환받으실때":"5.01", "매매기준율":"5.06" }, { "통화명": "영국 GBP", "현찰사실때":"1547.28", "현찰파실때":"1487.50", "송금_전신환보내실때":"1532.56", "송금_전신환받으실때":"1502.22", "매매기준율":"1517.39" }, { "통화명": "캐나다 CAD", "현찰사실때":"904.57", "현찰파실때":"869.63", "송금_전신환보내실때":"895.97", "송금_전신환받으실때":"878.23", "매매기준율":"887.10" }, { "통화명": "말레이시아 MYR", "현찰사실때":"300.91", "현찰파실때":"262.14", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"280.25", "매매기준율":"283.08" }, { "통화명": "러시아 RUB", "현찰사실때":"16.71", "현찰파실때":"13.91", "송금_전신환보내실때":"15.77", "송금_전신환받으실때":"15.47", "매매기준율":"15.62" }, { "통화명": "남아공화국 ZAR", "현찰사실때":"75.86", "현찰파실때":"65.85", "송금_전신환보내실때":"72.42", "송금_전신환받으실때":"70.72", "매매기준율":"71.57" }, { "통화명": "노르웨이 NOK", "현찰사실때":"132.05", "현찰파실때":"125.75", "송금_전신환보내실때":"130.18", "송금_전신환받으실때":"127.62", "매매기준율":"128.90" }, { "통화명": "뉴질랜드 NZD", "현찰사실때":"800.95", "현찰파실때":"770.01", "송금_전신환보내실때":"793.33", "송금_전신환받으실때":"777.63", "매매기준율":"785.48" }, { "통화명": "덴마크 DKK", "현찰사실때":"190.18", "현찰파실때":"181.10", "송금_전신환보내실때":"187.49", "송금_전신환받으실때":"183.79", "매매기준율":"185.64" }, { "통화명": "멕시코 MXN", "현찰사실때":"61.18", "현찰파실때":"50.95", "송금_전신환보내실때":"56.17", "송금_전신환받으실때":"55.07", "매매기준율":"55.62" }, { "통화명": "몽골 MNT", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"0.41" }, { "통화명": "바레인 BHD", "현찰사실때":"3311.59", "현찰파실때":"2863.41", "송금_전신환보내실때":"3143.52", "송금_전신환받으실때":"3081.28", "매매기준율":"3112.40" }, { "통화명": "방글라데시 BDT", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"13.84" }, { "통화명": "브라질 BRL", "현찰사실때":"246.89", "현찰파실때":"206.12", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"221.36", "매매기준율":"224.04" }, { "통화명": "브루나이 BND", "현찰사실때":"896.42", "현찰파실때":"810.24", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"861.95" }, { "통화명": "사우디아라비아 SAR", "현찰사실때":"332.58", "현찰파실때":"291.29", "송금_전신환보내실때":"315.99", "송금_전신환받으실때":"309.75", "매매기준율":"312.87" }, { "통화명": "스리랑카 LKR", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"6.35" }, { "통화명": "스웨덴 SEK", "현찰사실때":"135.95", "현찰파실때":"129.45", "송금_전신환보내실때":"134.02", "송금_전신환받으실때":"131.38", "매매기준율":"132.70" }, { "통화명": "스위스 CHF", "현찰사실때":"1311.50", "현찰파실때":"1260.84", "송금_전신환보내실때":"1299.03", "송금_전신환받으실때":"1273.31", "매매기준율":"1286.17" }, { "통화명": "아랍에미리트공화국 AED", "현찰사실때":"337.05", "현찰파실때":"297.44", "송금_전신환보내실때":"322.67", "송금_전신환받으실때":"316.29", "매매기준율":"319.48" }, { "통화명": "알제리 DZD", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"9.10" }, { "통화명": "오만 OMR", "현찰사실때":"3319.32", "현찰파실때":"2865.17", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"3048.05" }, { "통화명": "요르단 JOD", "현찰사실때":"1802.45", "현찰파실때":"1522.74", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"1655.15" }, { "통화명": "이스라엘 ILS", "현찰사실때":"376.78", "현찰파실때":"315.13", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"342.53" }, { "통화명": "이집트 EGP", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"74.46" }, { "통화명": "인도 INR", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"15.93" }, { "통화명": "인도네시아 IDR 100", "현찰사실때":"8.48", "현찰파실때":"7.14", "송금_전신환보내실때":"8.00", "송금_전신환받으실때":"7.86", "매매기준율":"7.93" }, { "통화명": "체코 CZK", "현찰사실때":"56.00", "현찰파실때":"46.98", "송금_전신환보내실때":"52.18", "송금_전신환받으실때":"51.06", "매매기준율":"51.62" }, { "통화명": "칠레 CLP", "현찰사실때":"1.66", "현찰파실때":"1.42", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"1.54" }, { "통화명": "카자흐스탄 KZT", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"2.77" }, { "통화명": "카타르 QAR", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"322.30" }, { "통화명": "케냐 KES", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"10.84" }, { "통화명": "콜롬비아 COP", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"0.32" }, { "통화명": "쿠웨이트 KWD", "현찰사실때":"4086.24", "현찰파실때":"3529.91", "송금_전신환보내실때":"3875.21", "송금_전신환받으실때":"3798.49", "매매기준율":"3836.85" }, { "통화명": "탄자니아 TZS", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"0.51" }, { "통화명": "터키 TRY", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"158.21", "송금_전신환받으실때":"154.77", "매매기준율":"156.49" }, { "통화명": "파키스탄 PKR", "현찰사실때":"0.00", "현찰파실때":"0.00", "송금_전신환보내실때":"0.00", "송금_전신환받으실때":"0.00", "매매기준율":"7.06" }, { "통화명": "폴란드 PLN", "현찰사실때":"334.85", "현찰파실때":"285.25", "송금_전신환보내실때":"313.46", "송금_전신환받으실때":"306.64", "매매기준율":"310.05" }, { "통화명": "헝가리 HUF", "현찰사실때":"4.19", "현찰파실때":"3.54", "송금_전신환보내실때":"3.88", "송금_전신환받으실때":"3.80", "매매기준율":"3.84" }

네이버의 환율 관련 크롤링 주소는 다음과 같습니다.

{'미국 USD':'http://finance.naver.com/marketindex/exchangeDailyQuote.nhn?marketindexCd=FX_USDKRW',
'일본 JPY':'http://finance.naver.com/marketindex/exchangeDailyQuote.nhn?marketindexCd=FX_JPYKRW',
'유럽연합 EUR':'http://finance.naver.com/marketindex/exchangeDailyQuote.nhn?marketindexCd=FX_EURKRW',
'중국 CNY':'http://finance.naver.com/marketindex/exchangeDailyQuote.nhn?marketindexCd=FX_CNYKRW'}

페이지를 크롤링합니다.

      Document doc = Jsoup.connect(url)
              .userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36")
              .ignoreContentType(true).get();


      Elements list = doc.getElementsByClass("section_exchange").get(0).getElementsByTag("tr");

      for (Element element : list) {
        if (element.text().contains(yyyyMMdd.format(new Date()))) { // yyyyMMdd.format(new Date());
          Elements tdList = element.getElementsByTag("td");
          System.out.println(tdList.get(6).text().replace(",", ""));
          break;
        }
      }

참조