Jsoup
Jsoup은 Java HTML Parser로서 HTML을 파싱할 때 주로 사용합니다.
크롤링과 관련한 프로젝트를 수행할 경우 유용하게 사용할 수 있습니다.
Jsoup 사용하기
1. Manifest에 권한 선언
Jsoup을 사용하기 위해서 인터넷에 대한 권한을 추가합니다.
<uses-permission android:name="android.permission.INTERNET" />
2. build.gradle에 의존성 추가
Jsoup을 사용하기 위해서 build.gradle에 Jsoup 라이브러리를 추가합니다.
implementation 'org.jsoup:jsoup:1.15.3'
3. 데이터 클래스 작성
가져올 HTML에서 필요한 데이터를 파악해서 data class를 작성합니다.
뉴스 제목, 링크, 이미지 정보가 필요하다고 하면 다음과 같이 작성합니다.
data class NewsModel(
val title: String,
val link: String,
var imageUrl: String? = null
)
4. 실제로 적용
해당 HTML에서 필요한 데이터를 표시한 부분이 어딘지 찾아봅니다.
meta에서 property가 og로 시작하는 데이터가 필요한 부분이라는 것을 알 수 있습니다.
// news: NewsModel
// connect()를 이용하여 설정한 URL 주소의 내용 가져오기
val jsoup = Jsoup.connect(news.link).get()
// meta에서 property가 og로 시작하는 데이터 가져오기 (cssQuery)
val elements = jsoup.select("meta[property^=og:]")
// property가 og:image에 해당하는 데이터를 찾아 content 값 가져오기
// <meta property="og:image" content="이미지 URL 주소">
val ogImageNode = elements.find { node ->
node.attr("property") == "og:image"
}
news.imageUrl = ogImageNode?.attr("content")
728x90
반응형
'안드로이드 > 활용' 카테고리의 다른 글
[Android] Lottie 사용하기 (0) | 2023.08.22 |
---|---|
[Android] Glide 사용하기 (0) | 2023.08.22 |
[Android] Tikxml로 XML 파싱하기 (0) | 2023.08.20 |
[Android] Retrofit 사용하기 (0) | 2023.08.18 |
[Android] HttpUrlConnection과 OkHttp (0) | 2023.08.18 |