APP/안드로이드프로그래밍

안드로이드스튜디오에서 Jsoup으로 웹 크롤링하기 (Java)

헬로월드! 2020. 9. 14. 14:52

jsoup 이란 특정 url의 html을 파싱해주는 라이브러리

 

파싱이란? 컴퓨터 과학에서 파싱((syntactic) parsing)은 일련의 문자열을 의미있는 토큰(token)으로 분해하고 이들로 이루어진 스 트리(parse tree)를 만드는 과정을 말한다.

 

안드로이드스튜디오에 build.gradle(Modul: app) 에 dependencies를 추가해준다 

implementation 'org.jsoup:jsoup:1.13.1'

manifest 에는 

   <uses-permission android:name="android.permission.INTERNET"/>

<android:usesCleartextTraffic="true"/> 이부분도 http 통신을 위해 추가! 

 

그다음 크롤링하고 싶은 웹페이지에 들어간다. 나는 빨간 부분을 가져오고 싶었다. 

 

원하는 웹페이지에서 F12 누르기

 

네트워크에서 데이터를 받아오려면 별도의 Thread가 필요하다! 그러지 않으면 이런 에러를 볼 수 있다!! 

doc.select( ) 안에는 태그를 써넣어줘야하는데, 이때는 F12 에서 html 코드를 보고 가져올만한 걸 가져오자!! 

detail_box class 의 dl 태그를 가져오고 첫번째꺼를 선택한다는 의미로 doc.select(".detail_box dl").first() 라고 써줬다.

가져올 땐 클래스는 . 으로 id 는 #으로 가져온다.

 

MainActivity.java

 

완성화면

이렇게 하면 끝이다!