모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    BePositive님의
    개인페이지입니다
    가입 : 11-09-19
    방문 : 1489회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_9131
    작성자 : BePositive
    추천 : 5
    조회수 : 560
    IP : 113.10.***.122
    댓글 : 1개
    등록시간 : 2015/04/05 05:06:26
    http://todayhumor.com/?programmer_9131 모바일
    리플분석 - 나의 리플들은 안녕하신가? (당일치기 프로젝트 OuRA)
    게시판에 답글을 달면 얼마나 많은 원글이 삭제될까요?

    고민 게시판이나 다른 게시판에는 작성자가 글을 돌이켜 봤을 때 남겨두는 것이 불편해서 지울 수 있습니다.
    특히 고민 게시판 같은 경우는 가끔 용기를 쥐어짜서 쓰는 경우도 흔하기 때문에 그런 것들은 소위 먹튀라고 말할 수도 없겠죠?

    아무튼 프로그래머 게시판 뿐만 아니라, 다른 게시판을 다 아울러 내가 달은 답글들은 무엇인지, 또 얼마나 많은 원글이 지워졌는지 궁금하네요.
    그래서 잠깐 프로그램을 짜 봤어요.

    프로그램의 이름은 패기넘치게

    오우라!

    입니다. 진지하므로 궁서체입니다. 오우라(OuRA)는 'Ou Reply Analysis'의 약자이기도 하구요. 기합소리 같기도 한 병맛스런 발음이 맘에 들었습니다.
    일을 크게 하고 싶진 않아서 python2, BeautifulSoup4 (ver 4.3.2)으로만 얼른 짜내 봤습니다.

    일단 당일치기 뚝딱 프로젝트니 소스는 걍 막 짰어요. 리플리스트 페이지를 분석해서 CSV 파일로 요렇게 딱 뽑아내 줍니다.

    스크린샷, 2015-04-05 04:11:25.png

    제가 리눅스를 쓰는 관계로 스프레드시트는 조금 후줄근한 리브레오피스를 사용할 거에요.

    모든 회원의 리플리스트는 공개됩니다. 그러니까, 로그인 하지 않아도 한 회원의 리플 리스트는 낱낱이 공개되죠.
    데스크탑 사이트는 http://www.todayhumor.co.kr/board/myreply.php?mn=<회원번호> 이구요
    모바일 쪽은 http://m.todayhumor.co.kr/myreply.php?mn=<회원번호> 로 접속하면 됩니다.

    여기서 회원번호는 아무 회원의 이름을 클릭해 보면 알 수 있습니다. 제 경우는 156985네요.
    • 소스 코드: http://github.com/chwnam/oura
    • BeautifulSoup4 4.3.2 에서 일부 오유 리플리스트 표의 몇몇 행을 제대로 파싱하지 못하는 버그가 있었습니다.
    • 리플리스트 또한 순차적으로 숫자를 출력하지 못하는 버그를 발견했습니다.

    제가 라이브러리로 쓰는 BeautifulSoup4 자체의 문제도 약간 있는 것으로 발견되고, 또 리플리스트가 순서대로 올바르게 출력되는건지는 확실하지는 않지만, 일단 당일치기 프로젝트므로, 그냥 프로그램을 통해 추출된 CSV가 적당히 데이터를 잘 가져왔다고 가정하고 그냥 진행하죠...

    또한 이런저런 분석을 더 할 수는 있겠지만, 그런 것도 조금, 아니 많이 귀찮으므로 간단한 분석만 해 보도록 하죠.

    (번호가 빠지는 현상에 대한 추가 설명을 글 마지막에 덧붙였습니다.)


    # 프로그래밍 게시판에 단 답글의 개수

    "board" 열에는 각 게시판별 아이콘 파일의 경로를 담고 있어요. 아이콘 파일은 동일할테니, 각 게시판 별로 리플을 구분할 수 있는 좋은 재료가 됩니다. 그럼 board에 컴게 아이콘만 쫙 출력하면...

    스크린샷, 2015-04-05 04:20:13.png

    네, 총 98개의 답글을 컴퓨터 게시판에 달았군요. 프로그래밍 게시판이 생기기 전에는 컴퓨터 게시판도 프로그래밍 관련 질문을 올리고는 했어요.
    그리고 스크린샷으로는 생략하지만, 프로그래밍 게시판에는 총 136개의 답변을 달았습니다.


    # 프게 중 원글이 삭제된 경우는?
    사정상 글이 삭제된 경우도 있을 수 있고, 진짜 답변만 취하고 먹튀당한 경우도 있겠죠? 그런데 그 삭제의 이유는 제가 다 알 수 없으니, 그냥 모두 '먹튀'라고 판단하겠습니다. 진짜 어쩔 수 없는 사정으로 글을 삭제하신 분께는 죄송하다는 말씀을 드릴께요.

    이 경우 'title'이 '원 게시글이 삭제되었습니다'라는 내용으로 나오게 됩니다. 그러므로 필터링해서 저 문자열만 추출하면,

    스크린샷, 2015-04-05 04:23:04.png

    저는 3건의 먹튀를 컴퓨터 게시판에서, 그리고 10건의 먹튀를 프로그래머 게시판에서 당했군요.  그러므로 ((3 + 10) / (98 + 136)) * 100 = 5.56% 먹튀를 당했습니다. 물론 여러 다른 게시판에서도 원글이 삭제된 경우를 봤지만, 보통 다른 게시판에는 질문에 대한 답변을 올리지 않으므로 스킵하겠습니다. 5.56%면 많은 건가요, 적은 건가요?


    # 나는 어느 게시판에 가장 댓글을 많이 남겼을까?

    자 이제 분석스러운 분석 하나 정도는 해 보도록 하죠. 나는 어떤 게시판에 몇 개나 글을 남겼을까요?

    피벗 테이블을 쓰면 되겠죠?
    스크린샷, 2015-04-05 04:37:28.png

    글은 대략 310개가 있는데, 역시 프로그래밍 게시판에 가장 많이, 그 다음으로 컴퓨터 게시판에 답글을 많이 달았네요.
    TOP 3: 프로그래밍 게시판, 컴퓨터 게시판, 그리고 애니 게시판. 그리고 근소한 차이로 디아블로 3 게시판.
    역시 제 본성이 낱낱이 드러나는 결과입니다. ㅜㅜ


    # 가장 추천을 많이 받은 댓글과 가장 반대를 많이 받은 글은?
    인터넷 게시판은 은 여러 사람들이 보는 곳이므로 왠만하면 어그로를 끈다든지, 요상한 댓글을 다는 경우를 자제하고 있습니다.
    제가 약간의 병맛끼는 있어도 남들 상처주지는 말자는 주의지만 그래도 어쩌다 좀 기분 상하는 글을 쓸 수도 있겠죠.

    최고로 추천받은 댓글과 최고로 반대먹은 댓글을 찾아 볼께요.
    최고 댓글은. 크리스마스에 살짝 외로워서 미친 척하고 달은 댓글에 무려 98명이 추천을 때려 푸르딩등해진 일이 있었어요.
    "한 웹툰 작가의 조건 없는 사랑 이야기( http://todayhumor.com/?animation_293400 )" 이 글이네요.

    최고로 반대 먹은 댓글은...지난 해 3월쯤 프로그래머 게시판에 걍 한줄 쓴게 폭풍 반대를 받았네요.
    http://todayhumor.com/?programmer_1768 그냥 기분 나쁜 감정 가질 거면 답변 자체를 안 하는 것도 좋은 대응이라 생각한 건데... 많은 분들이 반대하셔서 조금 가슴 아팠던 기억이 납니다 ㅠㅠ 총 47명이 반대 주셨습니다.

    또한 모든 댓글의 추천 총수는 571회, 반대 총수는 89회입니다. 반대에 비해 추천을 많이 받은 편이죠 비율은 (571/89) = 6.42 입니다. 이 비율 지수를 회원별로 계산한다면, 그 회원의 성향을 추측할 수 있는 좋은 자료가 될 듯 하군요.

    # 연도별, 시간별 댓글

    제가 2011년부터 오유 활동을 했는데, 그동안 어디에 얼마만큼 댓글을 썼는지 보죠
    스크린샷, 2015-04-05 04:57:32.png
    2014년이 가장 잉여로운 해임을 보여 주는군요. 또한 2015년은 아직 1/3도 안 지났는데 지난 해의 1/3의 분량만큼의 댓글을 벌써 달았어요. 잉여로운 삶을 살고 있다는 반증이죠.

    또한 2014년 이전에는 컴퓨터 게시판에 글을 많이 올리다가, 프로그래밍 게시판이 생긴 이후로는 프로그래밍 게시판에 댓글이 몰빵 되어 있는 것이 보이죠? 데이터는 거짓말을 안하네요 ㅠㅠ


    스크린샷, 2015-04-05 05:03:44.png

    전체 시간별 분포를 보니 역시 심야 시간, 특히 11시에 가장 많은 답글을 남기네요.
    분석은 여기까지 하도록 하겠습니다.

    대략 오우라로 얻어낸 데이터와 스프레드시트로 대략 제 오유 댓글 습관까지 낱낱이 알아보게 되었네요.
    첨에 그냥 요즘 질문글 먹튀에 대해 말이 많이 나오는데, 과연 나는 얼마나 많은 먹튀를 당했을까 궁금해서 해 본 건데...
    걍 당일치기 프로젝트로 해서 요만큼 하면 괜찮네요~~ 그럼 전 이만


    부록: 출력로그
    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=1'...
    parsing...
    page 1 parsed. 14 items captured ( 322 ~ 308 )
    WARN! Missing number is present: 313
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=2'...
    parsing...
    page 2 parsed. 13 items captured ( 307 ~ 293 )
    WARN! Missing number is present: 305 299
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=3'...
    parsing...
    page 3 parsed. 14 items captured ( 292 ~ 278 )
    WARN! Missing number is present: 281
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=4'...
    parsing...
    page 4 parsed. 15 items captured ( 277 ~ 263 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=5'...
    parsing...
    page 5 parsed. 13 items captured ( 262 ~ 248 )
    WARN! Missing number is present: 259 256
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=6'...
    parsing...
    page 6 parsed. 15 items captured ( 247 ~ 233 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=7'...
    parsing...
    page 7 parsed. 15 items captured ( 232 ~ 218 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=8'...
    parsing...
    page 8 parsed. 15 items captured ( 217 ~ 203 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=9'...
    parsing...
    page 9 parsed. 15 items captured ( 202 ~ 188 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=10'...
    parsing...
    page 10 parsed. 13 items captured ( 187 ~ 173 )
    WARN! Missing number is present: 181 177
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=11'...
    parsing...
    page 11 parsed. 14 items captured ( 172 ~ 158 )
    WARN! Missing number is present: 171
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=12'...
    parsing...
    page 12 parsed. 15 items captured ( 157 ~ 143 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=13'...
    parsing...
    page 13 parsed. 13 items captured ( 142 ~ 128 )
    WARN! Missing number is present: 141 133
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=14'...
    parsing...
    page 14 parsed. 15 items captured ( 127 ~ 113 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=15'...
    parsing...
    page 15 parsed. 15 items captured ( 112 ~ 98 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=16'...
    parsing...
    page 16 parsed. 15 items captured ( 97 ~ 83 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=17'...
    parsing...
    page 17 parsed. 15 items captured ( 82 ~ 68 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=18'...
    parsing...
    page 18 parsed. 15 items captured ( 67 ~ 53 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=19'...
    parsing...
    page 19 parsed. 15 items captured ( 52 ~ 38 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=20'...
    parsing...
    page 20 parsed. 15 items captured ( 37 ~ 23 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=21'...
    parsing...
    page 21 parsed. 15 items captured ( 22 ~ 8 )
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=22'...
    parsing...
    page 22 parsed. 6 items captured ( 7 ~ 1 )
    WARN! Missing number is present: 5
    sleep for 5 seconds

    accessing 'http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=23'...
    parsing...
    no item found! stop crawling...
    csv file saved as 'replies_156985.csv'
    # 설명
    한 리플리스트 페이지당 15개의 항목이 출력됩니다. 단, 마지막 페이지는 예외죠.
    그런데 한 페이지당 크롤, 파싱하는 단계에서 14개, 13개 항목만 출력되는 경우가 발생합니다. 이 경우 순차적으로 숫자가 출력되지 않고 하나씩 빠지게 됩니다.

    이렇게 숫자에 이가 빠지는 경우 WARN! Missing number is present: XXX XXX 출력을 시켜요.이렇게 숫자가 빠지는 경우는 2가지입니다. 위에서도 언급했듯, 오유에서 결과를 줄 때 번호가 빠져 있거나, 아니면 BS4 라이브러리가 HTML 파싱을 할 때 실수를 하기도 하죠.
    BS4 실수의 예는 제 리플리스트 22번째 페이지 5번째 답글입니다. 분명 화면에는 리플이 나오는데, 이것을 BS4가 제대로 파싱하지 못하더군요.
    그리고 리플리스트 표 가장 좌측을 유심히 보면 숫자가 빠져 있는 것이 보입니다. 이건 리플을 삭제해서 그런 건지, 아니면 진짜 버그인지는 잘 모르겠습니다.


    # 추가
    숫자가 빠지는 경우를 파악했습니다. 익명으로 답글을 달았을 경우, 내용을 보호하기 위해 로그인을 하지 않은 경우에는 그 항목은 처리하지 않습니다. 그래서 숫자가 군데군데 빠지게 되는 거죠. 오우라는 로그인을 하지 않은 상태에서 제 글을 분석하므로 그동안 익명으로 달은 댓글에 대해서는 결과를 가져 오지 못합니다.



    이 게시물을 추천한 분들의 목록입니다.
    [1] 2015/04/05 05:11:01  121.165.***.140  MGS  112354
    [2] 2015/04/05 06:45:27  50.161.***.8  라면은오짬  134886
    [3] 2015/04/05 12:05:43  222.98.***.212  imperfect  544310
    [4] 2015/04/05 16:54:22  125.130.***.99  홓훟홓  450614
    [5] 2015/04/06 23:51:46  182.224.***.224  짱미오  233358
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    74
    304개의 곡선으로 구성된 세월호 리본 [1] BePositive 18/04/16 15:34 148 20
    73
    저도 도움이 되길 바라며 [4] BePositive 17/05/14 22:33 392 11
    72
    진짜 이 나라는 멋지게 변할 거에요. [1] BePositive 17/05/10 08:45 55 0
    71
    [속보]'문재인 비방 혐의' 신연희 구청장 경찰 출석 [1] BePositive 17/04/11 14:16 575 11
    70
    지금 이 난리에 그 분도 한 의견 내 주셨음 정독했을 거어 BePositive 16/07/24 11:17 50 0
    69
    게임 + 프로그래밍용 견적 110만원대로 구성해 봤습니다. 조언 좀... [4] 본인삭제금지 BePositive 16/03/11 23:47 45 0
    68
    어이쿠 큰형님 여기서 뭐 하시나요 [1] BePositive 15/12/13 14:15 33 0
    67
    "우리는 미국을 모른다" - 왜 우리나라 IT는...? [4] BePositive 15/08/03 17:22 85 2
    66
    마리텔에 종이접기 김영만 아저씨 출연! [1] BePositive 15/07/10 18:13 28 2
    65
    내가 지금 노는 건가, 일을 하는 건가. TIS-100 [7] BePositive 15/07/01 16:21 79 10
    63
    "사이다 글" 보단 "탄산수 글"이라 쓰는 건 어때요? [1] BePositive 15/04/22 07:06 81 0
    62
    댓글은 시간 역순으로 출력하는 게 좋지 않을까요? BePositive 15/04/20 09:31 27 0
    61
    씨로 프로그램 짤 때 조언인데요 BePositive 15/04/16 16:38 62 0
    리플분석 - 나의 리플들은 안녕하신가? (당일치기 프로젝트 OuRA) [1] BePositive 15/04/05 05:06 55 5
    59
    프로그래밍 게시판에 오면 [5] BePositive 15/04/04 02:48 68 4
    58
    시원찮은 팔↗도↘ 리눅스 설치 실패기 올려 봅니다. [2] BePositive 15/03/27 16:55 55 0
    57
    팔도 비빔면 보다 찾은 배포판: 팔도 리눅스 [4] BePositive 15/03/25 04:11 72 11
    56
    어디 있었냐옹, 보고 싶었다냥! [3] BePositive 15/03/11 16:10 109 6
    55
    "책 추천해달라"는 질문을 할 필요가 있을까? [6] BePositive 15/02/05 03:23 55 7/7
    54
    [펌] 많은 학생들의 생각.JPG [11] BePositive 14/12/27 15:24 76 2
    53
    썰을 그리는 일에 대해 제 생각을 글로 적어 보고자 합니다. 루저녀석 14/12/07 09:15 62 0/7
    52
    썰 그리신 분들 그림을 좀 모아보는 게 어떨까요? [5] 루저녀석 14/10/01 16:39 76 0
    51
    일본우익망언 욕할 게 아니구먼... 루저녀석 14/04/25 21:01 62 0
    50
    어제 오늘 간단히 만들어 본 SubRenamer ... 루저녀석 14/04/15 02:18 28 1
    49
    적에게 둘러싸일수록 유리한 검방야만 스킬트리: 제압-산사태-선망 [1] 루저녀석 14/04/05 19:03 89 1
    48
    과제 질문에 대해 좋은 응답을 못 듣는 이유를 생각해 봤어. 루저녀석 14/04/03 19:23 26 2
    47
    돈 만큼 경험치를 주는 전설 손목 방어구! [1] 루저녀석 14/03/27 00:31 313 1
    45
    잉여한 실험. 세트/전설템은 얼마나 자주 떨어지는가? [3] 루저녀석 14/03/23 00:21 185 3
    [1] [2] [3]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈