DNH4가 댓글 수집을 드디어 지원합니다. 덕분에 N2H4도 함께 홍보합니다.
처음 naverNewsParser를 습작처럼 시작하고, N2H4 패키지로 이전하면서 여러 경험을 했습니다. naverNewsParser는 기가막히게도 책에 실린 모양이더군요. 고학력자들에게 석사 논문 낭독이 거대한 괴롭힘이듯 naverNewsParser가 약간 저에게 그런 역할을 해주는 것 같습니다. (물론 사용해 주시는 모든 분들 감사드립니다.)
이렇게 저렇게 패키지를 뭐라도 만들어 보고, 그 이후로도 많은 일들이 있었습니다. N2H4 패키지는 저에게 많은 생각을 하게 만들어주었죠.
조금 익숙해지고 난 이후에는 다음 뉴스를 대상으로 하는 비슷한 패키지를 만들어야 겠다는 생각을 했습니다. 그래서 몇 시간만에 N2H4 패키지의 골격을 가져와 모양만 갖춘게 DNH4 패키지입니다. 날짜를 보니 2016년 11월이네요. 이것저것 되게 하려고 노력하다가 의외의 장애물이 댓글 수집이었습니다. 방법을 몰라 방치한지 2년 가까이 된 패키지를 포스트에 올리는 이유는 드디어(!) 댓글 수집을 지원합니다.
DNH4 패키지는 N2H4처럼 github에서 호스팅하고 있습니다. 아래의 코드로 설치 & 로드하여 사용할 수 있습니다.
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
은
결과값을 주는 형태를 의미합니다. 옵션은 df
와
list
가 있으며 원래 제공하는 자료형이 json
이기
때문에 list
가 익숙하진 분들은 list
자료형을
권장합니다. 기본값은 df
입니다. 댓글의 상황에 따라
Warning messages
가 나오는데 무시하셔도 좋습니다. 내용상
신경이 쓰이시면 list
를 직접 다루어 보시는 것도 좋은 공부가
될 것입니다.
네이버 뉴스 수집 패키지 역시 같은 함수를 가지고 있습니다. 우선 아래 코드로 패키지를 설치하고 로드합니다.
대상이 될만한 기사를 선정하려고 하다보니, 기왕 같은 뉴스면 좋겠다 싶어 가져왔습니다.
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 프로젝트의 일부입니다.
언제나 그렇듯, 잘못된 내용이 있거나 문제가 생기면 언제든지 알려주세요. 감사합니다.
If you see mistakes or want to suggest changes, please create an issue on the source repository.
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 ...".
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} }