[패키지 소개] 네이버 뉴스와 다음 뉴스의 댓글 가져오기

R N2H4 DNH4 comment forkonlp

DNH4가 댓글 수집을 드디어 지원합니다. 덕분에 N2H4도 함께 홍보합니다.

true
2018-05-14

한줄요약

  1. DNH4가 드디어(!) 댓글 수집을 지원합니다.

처음 naverNewsParser를 습작처럼 시작하고, N2H4 패키지로 이전하면서 여러 경험을 했습니다. naverNewsParser는 기가막히게도 책에 실린 모양이더군요. 고학력자들에게 석사 논문 낭독이 거대한 괴롭힘이듯 naverNewsParser가 약간 저에게 그런 역할을 해주는 것 같습니다. (물론 사용해 주시는 모든 분들 감사드립니다.)

이렇게 저렇게 패키지를 뭐라도 만들어 보고, 그 이후로도 많은 일들이 있었습니다. N2H4 패키지는 저에게 많은 생각을 하게 만들어주었죠.

조금 익숙해지고 난 이후에는 다음 뉴스를 대상으로 하는 비슷한 패키지를 만들어야 겠다는 생각을 했습니다. 그래서 몇 시간만에 N2H4 패키지의 골격을 가져와 모양만 갖춘게 DNH4 패키지입니다. 날짜를 보니 2016년 11월이네요. 이것저것 되게 하려고 노력하다가 의외의 장애물이 댓글 수집이었습니다. 방법을 몰라 방치한지 2년 가까이 된 패키지를 포스트에 올리는 이유는 드디어(!) 댓글 수집을 지원합니다.

다음 뉴스 수집 패키지 DNH4

DNH4 패키지는 N2H4처럼 github에서 호스팅하고 있습니다. 아래의 코드로 설치 & 로드하여 사용할 수 있습니다.

# remotes::install_github("forkonlp/DNH4")
library(DNH4)

N2H4 패키지와 함수명이 같기 때문에 library()는 조심해 주셔야 합니다. DNH4 패키지는 6개의 함수를 우선 지원합니다.참조

getContent() 함수는 역시 기사 url을 입력으로 받아 관련 내용을 크롤링해 옵니다. getMainCategory() 함수는 기사의 대분류 항목을 가져옵니다. getSubCategory() 함수는 기사의 소분류 항목을 가져옵니다. 다음 뉴스는 카테고리가 대분류와 소분류만 있습니다. getUrlListByCategory() 함수는 뉴스 리스트 페이지에서 기사의 제목과 링크를 가져옵니다. getMaxPageNum() 함수는 뉴스 리스트 페이지의 마지막 페이지 번호를 가져옵니다. getComment() 함수는 기사 url을 입력으로 받아 그 기사의 댓글 정보를 가져옵니다.

말씀드린 것처럼, 다음 뉴스의 댓글 수집은 여러 권한 단계를 거쳐 제 짧은 실력으로는 그 동안 가져오지 못했습니다. 물론 셀레늄을 사용하면 이런 고민을 하지 않습니다만, 역시 속도 문제를 무시할 수 없는 것 같습니다. 그럼 이제 getComment() 함수를 사용해 보겠습니다.

댓글 수집 함수

우선 댓글이 많은 뉴스를 하나 골라봅시다. 제가 작성하는 시점으로 댓글이 3,000개가 넘는 기사로 해보겠습니다.

comments <- DNH4::getComment("http://v.media.daum.net/v/20180513202105651")
comments
# A tibble: 10 × 25
          id   postId forumId parentId type    status flags rating
       <int>    <int>   <int>    <int> <chr>   <chr>  <int>  <int>
 1 250018687 31383325     -99        0 COMMENT S        256      0
 2 250019139 31383325     -99        0 COMMENT S          0      0
 3 250023503 31383325     -99        0 COMMENT S        256      0
 4 250021353 31383325     -99        0 COMMENT S        256      0
 5 250020406 31383325     -99        0 COMMENT S        256      0
 6 250022883 31383325     -99        0 COMMENT S        256      0
 7 250019409 31383325     -99        0 COMMENT S        256      0
 8 250019687 31383325     -99        0 COMMENT S          0      0
 9 250022914 31383325     -99        0 COMMENT S        256      0
10 250019357 31383325     -99        0 COMMENT S        256      0
# … with 17 more variables: content <chr>, createdAt <chr>,
#   updatedAt <chr>, childCount <int>, likeCount <int>,
#   dislikeCount <int>, user_id <int>, user_status <chr>,
#   user_providerId <chr>, user_displayName <chr>,
#   user_commentCount <int>, user_flags <int>,
#   user_providerUserId <chr>, user_username <chr>, user_title <chr>,
#   user_roles <chr>, user_type <chr>

getComment() 함수는 몇 가지 옵션이 있습니다. limit은 가져오는 댓글의 갯수로 기본 10개로 설정되어 있습니다. 전체 댓글수를 가져오는 함수가 필요하다는 것을 확인하는 시점이네요. parentId는 대댓글등을 가져올 때 사용하는 옵션으로, 기본값 0에서 바꾸실 일이 거의 없을 겁니다. sort는 역시 추천순와 최신순 두 가지 옵션을 제공합니다. type은 결과값을 주는 형태를 의미합니다. 옵션은 dflist가 있으며 원래 제공하는 자료형이 json이기 때문에 list가 익숙하진 분들은 list 자료형을 권장합니다. 기본값은 df 입니다. 댓글의 상황에 따라 Warning messages가 나오는데 무시하셔도 좋습니다. 내용상 신경이 쓰이시면 list를 직접 다루어 보시는 것도 좋은 공부가 될 것입니다.

네이버 뉴스 댓글 가져오기

네이버 뉴스 수집 패키지 역시 같은 함수를 가지고 있습니다. 우선 아래 코드로 패키지를 설치하고 로드합니다.

# remotes::install_github("forkonlp/N2H4")
library(N2H4)

대상이 될만한 기사를 선정하려고 하다보니, 기왕 같은 뉴스면 좋겠다 싶어 가져왔습니다.

comments <- N2H4::getComment("http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=101&oid=214&aid=0000833933")
comments
# A tibble: 10 × 85
   ticket objectId     categoryId templateId commentNo parentCommentNo
   <chr>  <chr>        <chr>      <chr>      <chr>     <chr>          
 1 news   news214,000… *          default_e… 13435975… 1343597525     
 2 news   news214,000… *          view_econ… 13435957… 1343595725     
 3 news   news214,000… *          default_e… 13435895… 1343589535     
 4 news   news214,000… *          view_econ… 13435368… 1343536845     
 5 news   news214,000… *          view_econ… 13434077… 1343407745     
 6 news   news214,000… *          view_econ… 13433325… 1343332545     
 7 news   news214,000… *          view_econ… 13433135… 1343313585     
 8 news   news214,000… *          view_econ… 13432001… 1343200155     
 9 news   news214,000… *          view_econ… 13431857… 1343185745     
10 news   news214,000… *          view_econ… 13431465… 1343146585     
# … with 79 more variables: replyLevel <int>, replyCount <int>,
#   replyAllCount <int>, replyPreviewNo <lgl>, replyList <lgl>,
#   imageCount <int>, imageList <lgl>, imagePathList <lgl>,
#   imageWidthList <lgl>, imageHeightList <lgl>, commentType <chr>,
#   stickerId <lgl>, sticker <lgl>, sortValue <dbl>, contents <chr>,
#   userIdNo <chr>, exposedUserIp <lgl>, lang <chr>, country <chr>,
#   idType <chr>, idProvider <chr>, userName <chr>, …

네이버 뉴스의 댓글은 훨씬 풍부한 정보를 제공하여(구조가 복잡해서…) df를 기능상 제공하지 않습니다. 대신 댓글만 보는 부분을 안내해 드리고 있습니다.

comments$result$commentList[[1]]
NULL

그냥 위 모양으로라도 제공하는게 맞는가 싶어 급하게 업데이트 했습니다. N2H4 패키지의 getComment() 함수도 type을 지원하며, 기본값은 df이고 모든 데이터를 확인하기 위해서 list를 선택하시면 좋을 것 같습니다.

N2H4::getComment("http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=101&oid=214&aid=0000833933",
                 type = "list")
$success
[1] TRUE

$code
[1] "1000"

$message
[1] "요청을 성공적으로 처리하였습니다."

$lang
[1] "ko"

$country
[1] "KR"

$result
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     commentList
1 news, news, news, news, news, news, news, news, news, news, news214,0000833933, news214,0000833933, news214,0000833933, news214,0000833933, news214,0000833933, news214,0000833933, news214,0000833933, news214,0000833933, news214,0000833933, news214,0000833933, *, *, *, *, *, *, *, *, *, *, default_economy, view_economy, default_economy, view_economy, view_economy, view_economy, view_economy, view_economy, view_economy, view_economy, 1343597525, 1343595725, 1343589535, 1343536845, 1343407745, 1343332545, 1343313585, 1343200155, 1343185745, 1343146585, 1343597525, 1343595725, 1343589535, 1343536845, 1343407745, 1343332545, 1343313585, 1343200155, 1343185745, 1343146585, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, txt, txt, txt, txt, txt, txt, txt, txt, txt, txt, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1526301193000, 1526301073000, 1526300678000, 1526297019000, 1526288199000, 1526283570000, 1526282249000, 1526276078000, 1526275163000, 1526272157000, 정말 가난한 사람들이구나 마음이~~~~, 주민들 다바보냐 ㆍ대표 감사 다한통속이고 ᆢ비리밝혀야지, 헐~~~, 그냥 옛날 귀족과 뭐가 다름?\n아 아니다. 귀족이 아니라 왕이나 다름 없다고 봐야 겠네.\n내가 뭐 잘못 말했나?, 와........대단하다 대단해...., 갑질로 시작해서 여기까지 올줄은 몰랐지? 전문경영인 세우고 오너일가 싹 물러나라, 식탁도 글로벌하네..그럼 감방도 글로벌하게 세계3대 감옥으로가자..국내감방에서도 갑질할거니, 그냥 다없애주세요!얼마나 무고한 사람들이 힘들었을까\n국외로 추방했으면 합니다!!, 공물 갖다 바치는거냐. 왕조네 왕조., 법개정해서 걍 평생 옥살이 시켜라 저런건 나와도 사회도움 절대 안된다, 37nsJ, 5HzPo, 37nsJ, 1YJyu, 7dGi7, 2mS6W, 3mIMN, 4aKKm, Q7ZE, 6f8ZY, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ko, ko, ko, ko, ko, ko, ko, ko, ko, ko, IT, KR, IT, KR, KR, KR, KR, KR, KR, KR, naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, elen****, unb1****, elen****, pcw1****, iluv****, ywj2****, 77gu****, tntj****, c3******, betl****, , , , , , , , , , , naver, naver, naver, naver, naver, naver, naver, naver, naver, naver, 2018-05-14T21:33:13+0900, 2018-05-14T21:31:13+0900, 2018-05-14T21:24:38+0900, 2018-05-14T20:23:39+0900, 2018-05-14T17:56:39+0900, 2018-05-14T16:39:30+0900, 2018-05-14T16:17:29+0900, 2018-05-14T14:34:38+0900, 2018-05-14T14:19:23+0900, 2018-05-14T13:29:17+0900, 2018-05-14T12:33:13+0000, 2018-05-14T12:31:13+0000, 2018-05-14T12:24:38+0000, 2018-05-14T11:23:39+0000, 2018-05-14T08:56:39+0000, 2018-05-14T07:39:30+0000, 2018-05-14T07:17:29+0000, 2018-05-14T05:34:38+0000, 2018-05-14T05:19:23+0000, 2018-05-14T04:29:17+0000, 2018-05-14T21:33:13+0900, 2018-05-14T21:31:13+0900, 2018-05-14T21:24:38+0900, 2018-05-14T20:23:39+0900, 2018-05-14T17:56:39+0900, 2018-05-14T16:39:30+0900, 2018-05-14T16:17:29+0900, 2018-05-14T14:34:38+0900, 2018-05-14T14:19:23+0900, 2018-05-14T13:29:17+0900, 2018-05-14T12:33:13+0000, 2018-05-14T12:31:13+0000, 2018-05-14T12:24:38+0000, 2018-05-14T11:23:39+0000, 2018-05-14T08:56:39+0000, 2018-05-14T07:39:30+0000, 2018-05-14T07:17:29+0000, 2018-05-14T05:34:38+0000, 2018-05-14T05:19:23+0000, 2018-05-14T04:29:17+0000, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, TRUE, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, 37nsJ, 5HzPo, 37nsJ, 1YJyu, 7dGi7, 2mS6W, 3mIMN, 4aKKm, Q7ZE, 6f8ZY, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, elen****, unb1****, elen****, pcw1****, iluv****, ywj2****, 77gu****, tntj****, c3******, betl****, el****, un****, el****, pc****, il****, yw****, 77****, tn****, c3****, be****, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
  pageModel.page pageModel.pageSize pageModel.indexSize
1              1                 10                  10
  pageModel.startRow pageModel.endRow pageModel.totalRows
1                  1               10                2410
  pageModel.startIndex pageModel.totalPages pageModel.firstPage
1                    0                  241                   1
  pageModel.prevPage pageModel.nextPage pageModel.lastPage
1                  0                  2                 10
  pageModel.current pageModel.threshold pageModel.moveToLastPage
1                NA                  NA                    FALSE
  pageModel.moveToComment pageModel.moveToLastPrev morePage.prev
1                   FALSE                    FALSE 04q7zmlgkmzg8
  morePage.next morePage.start  morePage.end exposureConfig.reason
1 04q7okqkyfpj0  04q7zmlgkmzg8 04q71atbvmojj                    NA
  exposureConfig.status count.comment count.reply count.exposeCount
1            COMMENT_ON          2410         220              2440
  count.delCommentByUser count.delCommentByMon
1                   1213                    11
  count.blindCommentByUser count.blindReplyByUser count.total
1                        0                      0        2630
  listStatus sort config.useSnsLogin config.lineFeedOn config.useBest
1    current  NEW              FALSE             FALSE          FALSE
  config.useVote config.useVoteSelf config.useVoteGoodOnly
1           TRUE              FALSE                  FALSE
  config.useReport config.useCommonReport config.reportAuthority
1             TRUE                  FALSE                    ALL
  config.useDeleteOnManagerReport config.useReportSecret
1                           FALSE                  FALSE
  config.useSort config.sortTypes config.defaultSort
1           TRUE              NEW                NEW
  config.useByteLength config.useReply config.useReplyOnReply
1                FALSE            TRUE                  FALSE
  config.pageAfterReply config.maxReplyWriteBoxCount
1          TO_LAST_PAGE                            0
  config.useAutoRefresh config.useMention config.min config.max
1                 FALSE             FALSE          1        300
  config.useSticker config.stickerOnly
1             FALSE              FALSE
  config.stickerSupportedCategories config.stickerDefaultCategory
1                                NA                            NA
  config.stickerCategory config.stickerContentsUrl
1                     NA                        NA
  config.stickerKeyUrl config.stickerTabUrl config.stickerType
1                   NA                   NA                 NA
  config.stickerText config.stickerMarketUrl
1              FALSE                      NA
  config.stickerMobileResize config.useProfile config.useNaverProfile
1                      FALSE              TRUE                   TRUE
  config.dynamicProfile config.profileImageAreas
1                 FALSE              LIST, WRITE
                                                config.profileEmptyImage
1 https://static.nid.naver.com/images/web/user/default.png?type=f132_132
  config.displayMaskedUserId config.useManager config.managerDelete
1                      FALSE             FALSE                FALSE
  config.managerBlock config.managerNotice config.contentsManagerIcon
1               FALSE                FALSE                      FALSE
  config.secretComment config.exposureConfig
1                FALSE                 FALSE
  config.deleteAllAfterBlock config.useFold config.replyPreviewCount
1                      FALSE           TRUE                        0
  config.maxImageUploadCount config.maxVideoUploadCount
1                          0                          0
  config.maxVideoImageUploadCount config.maxImageUploadFileSize
1                               0                             0
  config.imageAutoRotate config.autoRefreshTime
1                  FALSE                      0
  config.autoRefreshDefaultOff config.autoRefreshChat
1                        FALSE                  FALSE
  config.maxChatFPS config.commentModify config.useCommentModify
1                 0                FALSE                   FALSE
  config.useViewAll config.useUserLevel config.anyUseImageExpose
1              TRUE               FALSE                     TRUE
  config.useImageComment config.useVideoComment config.useUrlLink
1                  FALSE                  FALSE             FALSE
  config.useCommentListIncludeDelete config.useStats
1                              FALSE            TRUE
  config.statsMinCount config.useUserEnvStats
1                  100                  FALSE
  config.countryStatsMinCount config.useConcurrentStats
1                           0                     FALSE
  config.useVoteStats config.useGpopCache config.useEnterSubmit
1               FALSE               FALSE                 FALSE
  config.useListReverse config.useTranslation config.useDeletedList
1                 FALSE                 FALSE                  TRUE
  config.combinedDeletedList config.displayDeletedList
1                       TRUE                      TRUE
  config.applyChangedNotice config.useUserCommentUi
1                     FALSE                    TRUE
  config.useUserCommentProfileUi config.userRecentStatsStartDate
1                           TRUE                    1.584544e+12
       config.userSortTypes config.useMentionLegacyFormat
1 FAVORITE, NEW, OLD, REPLY                         FALSE
  config.useMentionWrite config.mentionMaxCount config.useSecret
1                  FALSE                      0            FALSE
  config.useIdPenaltyLayer config.useRestrictWriteBySns
1                     TRUE                        FALSE
  config.photoInfraUploadDomain config.photoInfraSelectDomainHttps
1                            NA                 g-cbox.pstatic.net
  config.pcTempThumbnailType config.mobileTempThumbnailType
1                    ff80_80                        ff50_50
  config.realnameVerificationBlock config.realnameVerificationMessage
1                            FALSE                                 NA
  config.useBlindByReport config.keepTextareaOnRestriction
1                   FALSE                               NA
  config.displayIndividualBlindOnly config.hashtagMaxLength
1                             FALSE                      20
  config.useDualPagination
1                    FALSE
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             config.reportReasonList
1 AA03, AA14, AA68, AA33, AA01, AA24, AB28, 스팸홍보/도배글입니다., 음란물입니다., 불법정보를 포함하고 있습니다., 청소년에게 유해한 내용입니다., 욕설/생명경시/혐오/차별적 표현입니다., 개인정보 노출 게시물입니다., 불쾌한 표현이 있습니다., 사행성 오락이나 도박을 홍보하거나 권장하는 내용 등의 부적절한 스팸 홍보 행위, 동일하거나 유사한 내용 반복 게시, 성적 수치심을 일으키는 내용, 아동이나 청소년을 성 대상화한 표현, 과도하거나 의도적인 신체 노출, 음란한 행위와 관련된 부적절한 내용, 불법 행위, 불법 링크에 대한 정보 제공, 불법 상품을 판매하거나 유도하는 내용, 가출/왕따/학교폭력/자살 등 청소년에게 부정적인 영향을 조성하는 내용, 직·간접적인 욕설을 사용하여 타인에게 모욕감을 주는 내용, 생명을 경시여기거나 비하하는 내용, 계층/지역/종교/성별 등을 혐오하거나 비하하는 표현, 신체/외모/취향 등을 경멸하는 표현, 법적으로 중요한 타인의 개인정보를 게재, 당사자 동의 없는 특정 개인을 인지할 수 있는 정보, 불쾌한 표현 포함 [해당 사유는 클린봇 학습에 도움이 될 수 있습니다.] 
  config.displayReportLayer config.useHideAfterReport
1                      TRUE                      TRUE
  config.useCleanbot config.cleanbotEnforced
1               TRUE                   FALSE
  config.cleanbotServiceStepUI config.useCommentLinkToken
1                            2                       TRUE
  config.useUserBlock config.useUserBlockNaverIdType
1                TRUE                           TRUE
  config.useUserBlockNeoIdType config.useUserBlockProifleImageUi
1                        FALSE                              TRUE
  config.useChoice config.useNcc config.useRating
1            FALSE         FALSE            FALSE
  config.ratingUseSingleType config.ratingScale
1                      FALSE                  0
  config.ratingSelectorCount config.useFollow config.useManagerLike
1                          0             TRUE                 FALSE
  config.usePick config.pickLimit config.pickManagerLimit
1          FALSE                0                       0
  config.useReference config.useLMP config.pageType config.pageSize
1               FALSE         FALSE              NA               0
  config.indexSize config.userCommentPageSize
1                0                          0
  config.userCommentReplyPageSize config.replyPageSize
1                               0                    0
  config.replyIndexSize config.feedPageSize
1                     0                   0
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        config.blindReportReasonList
1 AA03, AA14, AA68, AA33, AA01, AA24, AB28, 스팸홍보/도배글입니다., 음란물입니다., 불법정보를 포함하고 있습니다., 청소년에게 유해한 내용입니다., 욕설/생명경시/혐오/차별적 표현입니다., 개인정보 노출 게시물입니다., 불쾌한 표현이 있습니다., 사행성 오락이나 도박을 홍보하거나 권장하는 내용 등의 부적절한 스팸 홍보 행위, 동일하거나 유사한 내용 반복 게시, 성적 수치심을 일으키는 내용, 아동이나 청소년을 성 대상화한 표현, 과도하거나 의도적인 신체 노출, 음란한 행위와 관련된 부적절한 내용, 불법 행위, 불법 링크에 대한 정보 제공, 불법 상품을 판매하거나 유도하는 내용, 가출/왕따/학교폭력/자살 등 청소년에게 부정적인 영향을 조성하는 내용, 직·간접적인 욕설을 사용하여 타인에게 모욕감을 주는 내용, 생명을 경시여기거나 비하하는 내용, 계층/지역/종교/성별 등을 혐오하거나 비하하는 표현, 신체/외모/취향 등을 경멸하는 표현, 법적으로 중요한 타인의 개인정보를 게재, 당사자 동의 없는 특정 개인을 인지할 수 있는 정보, 불쾌한 표현 포함 [해당 사유는 클린봇 학습에 도움이 될 수 있습니다.] 
  bestList graph.gender.male graph.gender.female
1     NULL                63                  37
                                                                                                                                                               graph.old
1 10, 20, 30, 40, 50, 60, 1, 6, 30, 42, 17, 4, exact, exact, exact, exact, exact, over, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE
  graph.client graph.country graph.empty
1           NA            NA       FALSE

$date
[1] "2023-04-22T05:08:05+0000"

attr(,"row.names")
[1] 1

드디어 다음 댓글을 가져올 수 있게 된 만큼, 많은 분들이 DNH4 패키지도 찾아주시리라 기대합니다. DNH4 패키지는 ForkonLP 프로젝트의 일부입니다.

언제나 그렇듯, 잘못된 내용이 있거나 문제가 생기면 언제든지 알려주세요. 감사합니다.

Corrections

If you see mistakes or want to suggest changes, please create an issue on the source repository.

Reuse

Text and figures are licensed under Creative Commons Attribution CC BY-NC-ND 4.0. Source code is available at https://github.com/mrchypark/mrchypark.github.io, unless otherwise noted. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".

Citation

For attribution, please cite this work as

Park (2018, May 14). mrchypark: [패키지 소개] 네이버 뉴스와 다음 뉴스의 댓글 가져오기. Retrieved from https://mrchypark.github.io/post/패키지-소개-네이버-뉴스와-다음-뉴스의-댓글-가져오기/

BibTeX citation

@misc{park2018[패키지,
  author = {Park, Chanyub},
  title = {mrchypark: [패키지 소개] 네이버 뉴스와 다음 뉴스의 댓글 가져오기},
  url = {https://mrchypark.github.io/post/패키지-소개-네이버-뉴스와-다음-뉴스의-댓글-가져오기/},
  year = {2018}
}