importbe.zvz.kotlininside.KotlinInsideimportbe.zvz.kotlininside.api.article.ArticleListimportbe.zvz.kotlininside.api.comment.CommentReadimportbe.zvz.kotlininside.api.type.comment.StringCommentimportbe.zvz.kotlininside.http.DefaultHttpClientimportbe.zvz.kotlininside.session.user.Anonymousimportjava.lang.IllegalStateExceptionfuncroller(id:String) {
val articleList =ArticleList(id, 1, true)
articleList.request()
val gallList = articleList.getGallList() // 글 목록val gallInfo = articleList.getGallInfo() // 갤러리 정보println(gallInfo.title)
gallList.forEach {
val totalPages =CommentRead(id, it.identifier, 1).get().totalPage
println(it.subject)
for (i in1..totalPages) {
println(i)
val reader =CommentRead(id, it.identifier, i)
val comments = reader.get().commentList
for (comment in comments) {
val content = comment.content
if (content isStringComment) {
println(content.memo)
}
}
}
}
}
funmain(args:Array<String>) {
KotlinInside.createInstance(
Anonymous("ㅇㅇ", "1234"),
DefaultHttpClient(true, true)
)
val galleryList = arrayOf("leagueoflegends3", "baseball_new9")
galleryList.forEach {
croller(it)
}
}
위와 같은 간단한 코드를 실행해서, 댓글 데이터들을 크롤링하고 있었습니다. 하지만 특정 글의 댓글 페이지에서 다음과 같은 오류가 발생합니다.
Exception in thread "main" java.lang.IllegalStateException: it.get("ipData").text() must not be null
at be.zvz.kotlininside.api.comment.CommentRead.get(CommentRead.kt:54)
at MainKt.croller(main.kt:24)
at MainKt.main(main.kt:44)
확인해보니 몇몇 댓글들은 ipData를 받아올 수 없어, IllegalStateException이 발생하는 것 같습니다. 확인해주시길 바랍니다.