원본출처: 티스토리 바로가기
오늘 이야기는 저 이미지와 같이 읽어 정보를 이용해서 해당 게시 홈페이지의 글들 중에서 최신 글을 찾아 열어 볼 수 있는 기능 구현 이야기를 이어 보겠습니다.
먼저 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}") } }
위 예시 코드와 같은 함수를 하나 만들어 두면 됩니다.그럼 최신글 번호를 찾아서 바로 열어 줍니다. 이렇게 구분을 여러 가지로 해 보는 것은 티스토리 페이지가 스킨에 따라 달라지는 부분들이 있기 때문입니다.
이제 다음으로 넘어가 봐야 할 텐데... 잘 될지는 모르겠습니다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
댓글
댓글 쓰기