게시판에 답글을 달면 얼마나 많은 원글이 삭제될까요?<br><br>고민 게시판이나 다른 게시판에는 작성자가 글을 돌이켜 봤을 때 남겨두는 것이 불편해서 지울 수 있습니다.<br>특히 고민 게시판 같은 경우는 가끔 용기를 쥐어짜서 쓰는 경우도 흔하기 때문에 그런 것들은 소위 먹튀라고 말할 수도 없겠죠?<br><br>아무튼 프로그래머 게시판 뿐만 아니라, 다른 게시판을 다 아울러 내가 달은 답글들은 무엇인지, 또 얼마나 많은 원글이 지워졌는지 궁금하네요.<br>그래서 잠깐 프로그램을 짜 봤어요.<br><br>프로그램의 이름은 패기넘치게 <br><br><font size="6"><b><font face="궁서">오우라!</font></b></font><br><br>입니다. 진지하므로 궁서체입니다. 오우라(OuRA)는 'Ou Reply Analysis'의 약자이기도 하구요. 기합소리 같기도 한 병맛스런 발음이 맘에 들었습니다.<br>일을 크게 하고 싶진 않아서 python2, BeautifulSoup4 (ver 4.3.2)으로만 얼른 짜내 봤습니다.<br><br>일단 당일치기 뚝딱 프로젝트니 소스는 걍 막 짰어요. 리플리스트 페이지를 분석해서 CSV 파일로 요렇게 딱 뽑아내 줍니다.<br><br><div style="text-align:left;"><img width="800" height="134" class="chimg_photo" style="border:medium none;" alt="스크린샷, 2015-04-05 04:11:25.png" src="http://thimg.todayhumor.co.kr/upfile/201504/1428174701IAFHLZ8vWEfWMgzz.png"></div><br>제가 리눅스를 쓰는 관계로 스프레드시트는 조금 후줄근한 리브레오피스를 사용할 거에요.<br><br>모든 회원의 리플리스트는 공개됩니다. 그러니까, 로그인 하지 않아도 한 회원의 리플 리스트는 낱낱이 공개되죠.<br>데스크탑 사이트는 <a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=" target="_blank">http://www.todayhumor.co.kr/board/myreply.php?mn=</a><회원번호> 이구요<br>모바일 쪽은 <a target="_blank" href="http://m.todayhumor.co.kr/myreply.php?mn=" target="_blank">http://m.todayhumor.co.kr/myreply.php?mn=</a><회원번호> 로 접속하면 됩니다.<br><br>여기서 회원번호는 아무 회원의 이름을 클릭해 보면 알 수 있습니다. 제 경우는 156985네요.<br><ul><li>소스 코드: <a target="_blank" href="http://github.com/chwnam/oura" target="_blank">http://github.com/chwnam/oura</a></li> <li><strike>BeautifulSoup4 4.3.2 에서 일부 오유 리플리스트 표의 몇몇 행을 제대로 파싱하지 못하는 버그가 있었습니다.</strike></li> <li><strike>리플리스트 또한 순차적으로 숫자를 출력하지 못하는 버그를 발견했습니다.</strike></li></ul><p><strike>제가 라이브러리로 쓰는 BeautifulSoup4 자체의 문제도 약간 있는 것으로 발견되고, 또 리플리스트가 순서대로 올바르게 출력되는건지는 확실하지는 않지만, </strike>일단 당일치기 프로젝트므로, 그냥 프로그램을 통해 추출된 CSV가 적당히 데이터를 잘 가져왔다고 가정하고 그냥 진행하죠...</p> <p>또한 이런저런 분석을 더 할 수는 있겠지만, 그런 것도 조금, 아니 많이 귀찮으므로 간단한 분석만 해 보도록 하죠.</p> <p>(번호가 빠지는 현상에 대한 추가 설명을 글 마지막에 덧붙였습니다.)</p> <p><br></p> <p><b># 프로그래밍 게시판에 단 답글의 개수</b></p> <p>"board" 열에는 각 게시판별 아이콘 파일의 경로를 담고 있어요. 아이콘 파일은 동일할테니, 각 게시판 별로 리플을 구분할 수 있는 좋은 재료가 됩니다. 그럼 board에 컴게 아이콘만 쫙 출력하면...</p> <p></p> <div style="text-align:left;"><img width="435" height="555" style="border:medium none;" alt="스크린샷, 2015-04-05 04:20:13.png" src="http://thimg.todayhumor.co.kr/upfile/201504/14281752264AF8u9kCS.png"><br><br>네, 총 98개의 답글을 컴퓨터 게시판에 달았군요. 프로그래밍 게시판이 생기기 전에는 컴퓨터 게시판도 프로그래밍 관련 질문을 올리고는 했어요.<br>그리고 스크린샷으로는 생략하지만, 프로그래밍 게시판에는 총 136개의 답변을 달았습니다.<br><br><br><b># 프게 중 원글이 삭제된 경우는?</b><br></div>사정상 글이 삭제된 경우도 있을 수 있고, 진짜 답변만 취하고 먹튀당한 경우도 있겠죠? 그런데 그 삭제의 이유는 제가 다 알 수 없으니, 그냥 모두 '먹튀'라고 판단하겠습니다. 진짜 어쩔 수 없는 사정으로 글을 삭제하신 분께는 죄송하다는 말씀을 드릴께요. <p></p> <p>이 경우 'title'이 '원 게시글이 삭제되었습니다'라는 내용으로 나오게 됩니다. 그러므로 필터링해서 저 문자열만 추출하면,<br></p> <p></p> <div style="text-align:left;"><img width="604" height="308" style="border:medium none;" alt="스크린샷, 2015-04-05 04:23:04.png" src="http://thimg.todayhumor.co.kr/upfile/201504/14281753952XqiA1xN6xko4TIuI9rJQnZwYdWShn.png"></div><br><p></p> <p>저는 3건의 먹튀를 컴퓨터 게시판에서, 그리고 10건의 먹튀를 프로그래머 게시판에서 당했군요. 그러므로 ((3 + 10) / (98 + 136)) * 100 = 5.56% 먹튀를 당했습니다. 물론 여러 다른 게시판에서도 원글이 삭제된 경우를 봤지만, 보통 다른 게시판에는 질문에 대한 답변을 올리지 않으므로 스킵하겠습니다. 5.56%면 많은 건가요, 적은 건가요?<br></p> <p><br></p> <p><b># 나는 어느 게시판에 가장 댓글을 많이 남겼을까?</b></p> <p>자 이제 분석스러운 분석 하나 정도는 해 보도록 하죠. 나는 어떤 게시판에 몇 개나 글을 남겼을까요?</p>피벗 테이블을 쓰면 되겠죠?<br><div style="text-align:left;"><img width="428" height="381" style="border:medium none;" alt="스크린샷, 2015-04-05 04:37:28.png" src="http://thimg.todayhumor.co.kr/upfile/201504/14281762609MYosB6HsLDcKE2XgNkNCaZuFIhDPIJ.png"><br><br>글은 대략 310개가 있는데, 역시 프로그래밍 게시판에 가장 많이, 그 다음으로 컴퓨터 게시판에 답글을 많이 달았네요.<br>TOP 3: 프로그래밍 게시판, 컴퓨터 게시판, 그리고 애니 게시판. 그리고 근소한 차이로 디아블로 3 게시판.<br>역시 제 본성이 낱낱이 드러나는 결과입니다. ㅜㅜ<br><br><br><b># 가장 추천을 많이 받은 댓글과 가장 반대를 많이 받은 글은?</b><br>인터넷 게시판은 은 여러 사람들이 보는 곳이므로 왠만하면 어그로를 끈다든지, 요상한 댓글을 다는 경우를 자제하고 있습니다.<br>제가 약간의 병맛끼는 있어도 남들 상처주지는 말자는 주의지만 그래도 어쩌다 좀 기분 상하는 글을 쓸 수도 있겠죠.<br><br>최고로 추천받은 댓글과 최고로 반대먹은 댓글을 찾아 볼께요.<br>최고 댓글은. 크리스마스에 살짝 외로워서 미친 척하고 달은 댓글에 무려 98명이 추천을 때려 푸르딩등해진 일이 있었어요.<br>"한 웹툰 작가의 조건 없는 사랑 이야기( <a target="_blank" href="http://todayhumor.com/?animation_293400" target="_blank">http://todayhumor.com/?animation_293400</a> )" 이 글이네요.<br><br>최고로 반대 먹은 댓글은...지난 해 3월쯤 프로그래머 게시판에 걍 한줄 쓴게 폭풍 반대를 받았네요.<br><a target="_blank" href="http://todayhumor.com/?programmer_1768" target="_blank">http://todayhumor.com/?programmer_1768</a> 그냥 기분 나쁜 감정 가질 거면 답변 자체를 안 하는 것도 좋은 대응이라 생각한 건데... 많은 분들이 반대하셔서 조금 가슴 아팠던 기억이 납니다 ㅠㅠ 총 47명이 반대 주셨습니다.<br><b><br></b>또한 모든 댓글의 추천 총수는 571회, 반대 총수는 89회입니다. 반대에 비해 추천을 많이 받은 편이죠 비율은 (571/89) = 6.42 입니다. 이 비율 지수를 회원별로 계산한다면, 그 회원의 성향을 추측할 수 있는 좋은 자료가 될 듯 하군요.<b><br><br># 연도별, 시간별 댓글 </b><br>제가 2011년부터 오유 활동을 했는데, 그동안 어디에 얼마만큼 댓글을 썼는지 보죠<br><div style="text-align:left;"><img width="740" height="391" style="border:medium none;" alt="스크린샷, 2015-04-05 04:57:32.png" src="http://thimg.todayhumor.co.kr/upfile/201504/1428177474qXEcjAraCiuNCloh8zb.png"></div>2014년이 가장 잉여로운 해임을 보여 주는군요. 또한 2015년은 아직 1/3도 안 지났는데 지난 해의 1/3의 분량만큼의 댓글을 벌써 달았어요. 잉여로운 삶을 살고 있다는 반증이죠.<br><br>또한 2014년 이전에는 컴퓨터 게시판에 글을 많이 올리다가, 프로그래밍 게시판이 생긴 이후로는 프로그래밍 게시판에 댓글이 몰빵 되어 있는 것이 보이죠? 데이터는 거짓말을 안하네요 ㅠㅠ<br><br><br><div style="text-align:left;"><img width="800" height="391" class="chimg_photo" style="border:medium none;" alt="스크린샷, 2015-04-05 05:03:44.png" src="http://thimg.todayhumor.co.kr/upfile/201504/1428177838Yw7OsWtYkXYEjY.png"></div><br></div>전체 시간별 분포를 보니 역시 심야 시간, 특히 11시에 가장 많은 답글을 남기네요.<br>분석은 여기까지 하도록 하겠습니다.<br><br>대략 오우라로 얻어낸 데이터와 스프레드시트로 대략 제 오유 댓글 습관까지 낱낱이 알아보게 되었네요.<br>첨에 그냥 요즘 질문글 먹튀에 대해 말이 많이 나오는데, 과연 나는 얼마나 많은 먹튀를 당했을까 궁금해서 해 본 건데...<br>걍 당일치기 프로젝트로 해서 요만큼 하면 괜찮네요~~ 그럼 전 이만<br><br><br>부록: 출력로그<br><blockquote><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=1">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=1</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 1 parsed. 14 items captured ( 322 ~ 308 )</font><br><font face="Courier New">WARN! Missing number is present: 313</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=2">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=2</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 2 parsed. 13 items captured ( 307 ~ 293 )</font><br><font face="Courier New">WARN! Missing number is present: 305 299</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=3">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=3</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 3 parsed. 14 items captured ( 292 ~ 278 )</font><br><font face="Courier New">WARN! Missing number is present: 281</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=4">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=4</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 4 parsed. 15 items captured ( 277 ~ 263 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=5">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=5</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 5 parsed. 13 items captured ( 262 ~ 248 )</font><br><font face="Courier New">WARN! Missing number is present: 259 256</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=6">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=6</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 6 parsed. 15 items captured ( 247 ~ 233 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=7">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=7</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 7 parsed. 15 items captured ( 232 ~ 218 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=8">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=8</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 8 parsed. 15 items captured ( 217 ~ 203 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=9">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=9</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 9 parsed. 15 items captured ( 202 ~ 188 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=10">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=10</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 10 parsed. 13 items captured ( 187 ~ 173 )</font><br><font face="Courier New">WARN! Missing number is present: 181 177</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=11">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=11</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 11 parsed. 14 items captured ( 172 ~ 158 )</font><br><font face="Courier New">WARN! Missing number is present: 171</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=12">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=12</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 12 parsed. 15 items captured ( 157 ~ 143 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=13">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=13</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 13 parsed. 13 items captured ( 142 ~ 128 )</font><br><font face="Courier New">WARN! Missing number is present: 141 133</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=14">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=14</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 14 parsed. 15 items captured ( 127 ~ 113 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=15">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=15</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 15 parsed. 15 items captured ( 112 ~ 98 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=16">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=16</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 16 parsed. 15 items captured ( 97 ~ 83 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=17">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=17</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 17 parsed. 15 items captured ( 82 ~ 68 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=18">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=18</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 18 parsed. 15 items captured ( 67 ~ 53 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=19">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=19</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 19 parsed. 15 items captured ( 52 ~ 38 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=20">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=20</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 20 parsed. 15 items captured ( 37 ~ 23 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=21">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=21</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 21 parsed. 15 items captured ( 22 ~ 8 )</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=22">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=22</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">page 22 parsed. 6 items captured ( 7 ~ 1 )</font><br><font face="Courier New">WARN! Missing number is present: 5</font><br><font face="Courier New">sleep for 5 seconds</font><br><br><font face="Courier New">accessing '<a target="_blank" href="http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=23">http://www.todayhumor.co.kr/board/myreply.php?mn=156985&page=23</a>'...</font><br><font face="Courier New">parsing...</font><br><font face="Courier New">no item found! stop crawling...</font><br><font face="Courier New">csv file saved as 'replies_156985.csv'</font><br></blockquote># 설명<br>한 리플리스트 페이지당 15개의 항목이 출력됩니다. 단, 마지막 페이지는 예외죠.<br>그런데 한 페이지당 크롤, 파싱하는 단계에서 14개, 13개 항목만 출력되는 경우가 발생합니다. 이 경우 순차적으로 숫자가 출력되지 않고 하나씩 빠지게 됩니다.<br><br>이렇게 숫자에 이가 빠지는 경우 <font face="Courier New">WARN! Missing number is present: XXX XXX 출력을 시켜요<strike>.이렇게 숫자가 빠지는 경우는 2가지입니다.</strike></font><strike> 위에서도 언급했듯, 오유에서 결과를 줄 때 번호가 빠져 있거나, 아니면 BS4 라이브러리가 HTML 파싱을 할 때 실수를 하기도 하죠. <br>BS4 실수의 예는 제 리플리스트 22번째 페이지 5번째 답글입니다. 분명 화면에는 리플이 나오는데, 이것을 BS4가 제대로 파싱하지 못하더군요.<br>그리고 리플리스트 표 가장 좌측을 유심히 보면 숫자가 빠져 있는 것이 보입니다. 이건 리플을 삭제해서 그런 건지, 아니면 진짜 버그인지는 잘 모르겠습니다.</strike><br><br># 추가<br>숫자가 빠지는 경우를 파악했습니다. 익명으로 답글을 달았을 경우, 내용을 보호하기 위해 로그인을 하지 않은 경우에는 그 항목은 처리하지 않습니다. 그래서 숫자가 군데군데 빠지게 되는 거죠. 오우라는 로그인을 하지 않은 상태에서 제 글을 분석하므로 그동안 익명으로 달은 댓글에 대해서는 결과를 가져 오지 못합니다.<br><br><br>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.