티스토리 뷰
https://www.data.go.kr/data/15056971/openapi.do
과학기술정보통신부 우정사업본부_우편번호 정보조회
검색조건에 의해 도로명주소 및 지번주소 상세검색 리스트를 조회 하는 새우편번호 정보조회 기능의 OPEN API 서비스 입니다. ㅇ 출력하는 항목(사용자가 응답 받게 되는 데이터) : 우편번호, 도로
www.data.go.kr
자세한 내용은 위의 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
- XE
- php
- 문자열
- xe addon
- ocjap
- EC
- 파싱
- MySQL
- 오라클
- 플러터
- Python
- 프로씨
- 자바
- 이클립스
- webix
- esql
- 라이믹스 모듈
- proc
- 스크래핑
- KG
- 포인터
- 인포믹스
- C
- ocajp
- JDBC
- 파이썬
- XE3
- xe애드온
- 자바 smtp
- 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 |
글 보관함