안드로이드 HTML 파싱
HTML 파싱을 하는 방법에 대해 간단히 설명하도록 하겠습니다.
지금보시는 화면은 봉사활동 홈페이지의 일부분입니다. 이 부분을 파싱해보도록 하겠습니다.
홈페이지의 정보입니다. 현재 이페이지를 파싱해야 하기 때문에 마우스 오른쪽을 클릭하여 소스보기를 누릅니다.
현재 소스보기를 누른상태에서 ctrl+f 를 이용해서 table 을 찾은 상태입니다.
현재 제일 처음있는 그림자체를 보시면 표안에 정보들이 들어가 있는것을 보실 수가 있습니다.
그 표가 table 입니다. 그래서 소스안에서 table 을 찾은 것입니다. 홈페이지 정보와 소스정보를 대충
보시면 table 소스안의 정보가 제일 처음있는 그림과 같다는 것을 보실수가 있습니다.
현재 도서관 일손돕기 라는 봉사활동명은 <table> 태그안의 <tr> 태그의 두번째<stong> 태그 안에 있는 것을 알수가 있습니다.
그리고 빨간부분으로 표시해놓은 a href 는 클릭을 했을때 상세정보로 이동하는 링크 주소입니다.
그래서 현재 파싱해야 할 것은 <tr>태그 안의 <td> 태그의 세번째에 있는 링크주소와 <tr> 태그안에있는 <strong>태그의
봉사활동 명 입니다. 그래서 이것을 파싱하는 소스를 보시면
빨간색으로 표시한부분이 태그 부분입니다 그 옆부분의 get() 부분 안의 숫자는 해당 태그의 번째를 의미합니다.
현재 파싱한 정보를 data에 add 시키고있습니다. data는 ArrayList<HashMap<String, String>> 입니다.
파싱한 결과입니다. 리스트로 차례대로 나타는것을 알 수가 있습니다.
현재 이홈페이지는 Rss 를 지원하지 않는 홈페이지라 홈페이지 제작자가 소스를 바꾸게 되면 오류가 날 수가 있습니다.
저같은 경우에도 만들어 놓고 가끔보면 오류가 나는 경우가 많습니다. 그러한 경우를 보면 홈페이지 소스가 바뀌어 있을 때가
많습니다. 파싱은 간단하게 말하면 내가 원하는 데이터를 소스에서 뽑아온다고 생각하시면 됩니다. 그래서 원하는 데이터만
들고오는 형식으로 소스를 코딩한다고 생각 하시면 됩니다. 파싱을 해왔을때 공백까지 같이 들고올수도 있는데 이러한 부분은
trim() 메소드로 제거를 해주었고, 내가 원하는 데이터 사이에 필요없는(예 <br> ) 같은 문자가 있을수도 있습니다.
이러한 부분은 replaceAll("<br>", "") 메소드로 해당 태그를 전부 공백으로 바꾸는 형식으로 필요없는 문자를 제거했습니다.
이러한 부분은 정규표현식으로 제거할수도있다고 들었습니다. 그리고 필요없는 데이터를 자르는 메서드로
substring(5,10) 이 있습니다. 5번째와 10번째까지의 데이터를 자른다는 뜻입니다.
궁금한 점 댓글로 남겨주시면 답변해드리도록 하겠습니다^^
'안드로이드 > 개발 TIP' 카테고리의 다른 글
안드로이드 다국어 지원을 위한 언어 코드 (0) | 2017.11.13 |
---|---|
안드로이드/Android 언어 설정 하기 (0) | 2017.11.13 |
안드로이드 다국어 처리를 위한 리소스 폴더 이름 (0) | 2017.11.13 |
[Android] 안드로이드 마켓 앱을 실행하는 방법 (0) | 2017.11.13 |
[Android] 안드로이드 디버깅 - Logcat, Log (0) | 2017.11.13 |
안드로이드 APP 개발 입문_AVD (Android Virtual Device) 설정하기 (0) | 2017.11.13 |
이클립스(4.4)에서 안드로이드 V7 MATERIAL DESIGN 위젯을 사용 (0) | 2017.11.13 |
안드로이드 XML 파싱 (0) | 2017.11.13 |