2026/03/24

오늘의 이야기

읽어오 정보 예시



 


오늘 이야기는 저 이미지와 같이 읽어 정보를 이용해서 해당 게시 홈페이지의 글들 중에서 최신 글을 찾아 열어 볼 수 있는 기능 구현 이야기를 이어 보겠습니다.


 


먼저 gradle  파일에 jsoup 사용을 위해 추가합니다. python에서는 beautifulsoup 같이 html 문서의 파싱을 등을 할 수 있습니다. 



// jsoup
implementation 'org.jsoup:jsoup:1.16.1'


 


url 정보를 받아 왔다면 이제 그 페이지를 열어서 받아온 html 문서의 내용에서 최신글을 번호를 확인해 볼 수 있는 기능 구현 코드를 보겠습니다. 


 



		var newUrl = "여기에 다가 게시자의 티스토리 블로그 URL 을 넣어 줍니다."

CoroutineScope(Dispatchers.IO).launch {
try {
val doc = Jsoup.connect(url).get()
// val document = Jsoup.parse(doc.html().trimIndent())
var detailTitleLinks = doc.select("div.detail a.title.link.link-primary")
if (detailTitleLinks.isEmpty()) {
detailTitleLinks = doc.select("div.article-content a.link-article")
}
if (detailTitleLinks.isEmpty()) {
detailTitleLinks = doc.select("div.list_content a.thumbnail_post")
}
if (detailTitleLinks.isEmpty()) {
detailTitleLinks = doc.select("div.post-item")
}
if (detailTitleLinks.isEmpty()) {
detailTitleLinks = doc.select("div.posts li a")
}
if (detailTitleLinks.isEmpty()) {
Log.e("", "doc = $doc")
}
for (link in detailTitleLinks) {
var detailHref = link.attr("href")
if (detailHref.isEmpty()) {
detailHref = link.selectFirst("a")?.attr("href").toString()
}
Log.e("", "Detail Href: $detailHref")
if (detailHref.isNotBlank()) {
newUrl = "$url/m$detailHref"
break
}
}
Log.e("", "newUrl = $newUrl")

val intent = Intent(Intent.ACTION_VIEW, Uri.parse(newUrl))
startActivity(intent)

} catch (e : Exception) {
Log.e("", "error = ${e.localizedMessage}")
}
}


위 예시 코드와 같은 함수를 하나 만들어 두면 됩니다.그럼 최신글 번호를 찾아서 바로 열어 줍니다.  이렇게 구분을 여러 가지로 해 보는 것은 티스토리 페이지가 스킨에 따라 달라지는 부분들이 있기 때문입니다. 


 


이제 다음으로 넘어가 봐야 할 텐데... 잘 될지는 모르겠습니다. 


 






댓글 없음:

댓글 쓰기

오늘의 이야기

AI 생성 이미지   1️⃣ 글 제목 - 🐍 Python | Raspberry Pi에서 오픈소스 LLM으로 뉴스 요약기 만들기 --- 2️⃣ 개요 (Intro) - 오늘은 라즈베리 파이에서 오픈소...