티스토리 뷰
https://www.data.go.kr/data/15056971/openapi.do
자세한 내용은 위의 url 참고하면 된다.
위의 내용을 참고하면 xml로 결과가 리턴되는데 그 xml에서 우편번호만 xml 파싱해서 zipCode 엘리먼트의 값만 뽑아오는 소스.
StringBuilder urlBuilder = new StringBuilder("http://openapi.epost.go.kr/postal/retrieveNewAdressAreaCdSearchAllService/retrieveNewAdressAreaCdSearchAllService/getNewAddressListAreaCdSearchAll"); /*URL*/
urlBuilder.append("?" + URLEncoder.encode("serviceKey","UTF-8") + "=YOUR_SERVICE_KEY"); /*Service Key*/
urlBuilder.append("&" + URLEncoder.encode("srchwrd","UTF-8") + "=" + URLEncoder.encode("서울특별시 강남구 역삼동 825", "UTF-8")); //검색어
urlBuilder.append("&" + URLEncoder.encode("countPerPage","UTF-8") + "=" + URLEncoder.encode("10", "UTF-8"));
urlBuilder.append("&" + URLEncoder.encode("currentPage","UTF-8") + "=" + URLEncoder.encode("1", "UTF-8"));
URL url = new URL(urlBuilder.toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-type", "application/json");
System.out.println("Response code: " + conn.getResponseCode());
BufferedReader rd;
if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
} else {
rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
}
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
sb.append(line);
}
rd.close();
conn.disconnect();
String xml=sb.toString();
System.out.println(xml);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = factory.newDocumentBuilder();
StringReader sr=new StringReader(xml);
Document doc=documentBuilder.parse(new InputSource(sr));
Element element = doc.getDocumentElement();
NodeList items = element.getElementsByTagName("zipNo");
int n = items.getLength();
System.out.println(n);
for (int i = 0; i < n; i++) {
HashMap<String, Object> map = new HashMap<>();
Node item = items.item(i);
Node text = item.getFirstChild();
String nodeName=item.getNodeName();
String itemValue = text.getNodeValue();
System.out.println(itemValue);
}
'스크래핑,파싱' 카테고리의 다른 글
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/parser/JSONParser (0) | 2023.03.27 |
---|---|
네이버 지도 리턴 json (0) | 2022.08.25 |
snoopy https fetch php (0) | 2022.02.08 |
php 목록 (리스트) 파싱 소스 (0) | 2018.09.07 |
고도몰 옵션등록 방법 api (0) | 2018.08.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- esql
- ocjap
- 파싱
- webix
- xe애드온
- XE3
- KG
- JDBC
- proc
- C언어
- 이클립스
- ocpjp
- Python
- ocajp
- XE
- 스크래핑
- php
- xe addon
- 오라클
- 자바 셀레니움
- 포인터
- MySQL
- 자바 smtp
- EC
- 인포믹스
- C
- 파이썬
- 문자열
- 프로씨
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함