노벨피아 텍본 만들기 - nobelpia tegbon mandeulgi

회사를 그만둔 뒤 끔찍한 유혹을 이기지 못하고

Show

노벨피아와 문피아 웹소설에 중독되었다.

슬프게도 엄청난 시간을 꼴아박았다.

대충 6천편정도 본것같다.

하지만 웹소설은 생각보다 조금 큰 단점이 있다.

그것은 바로.

'검색이 안된다'는 것이다.

소설을 보다보면 인상적인 구절이나 화가 존재하기 마련이고

이를 다시 보기 위해서는 일반적으로 해당 장면을 연상할 수 있는 키워드로 서치하게 되는데

노벨피아나 문피아에서는 이 작업이 불가능하다.

그래서 나는

작가의 작품을 [공짜로 보기위해] 텍본을 만드는 것이 아닌

[편하게 보기위해] 개인적으로 만드는 텍본 생성기는 괜찮지 않을까 하는 생각에

텍본 생성기를 만들게 되었다.

방법은 간단하다.

1. 해당 소설의 url을 입력받는다.
2. 해당 소설의 모든 화 url을 받는다.
3. 해당 소설의 모든 화 url에서 텍스트를 추출한다.
4. 이를 텍스트로 export한다.

크롤링에는 가장 완벽한 자바스크립트 라이브러리인 puppeteer를 사용하도록 한다.

소스코드는 아래와 같다.

노벨피아 텍본 만들기 - nobelpia tegbon mandeulgi

getUrl은 puppeteer를 이용하여 1화부터 최종화까지 url을 가져와 배열로 return 하는 함수이고
getText는 puppeteer를 이용하여 텍스트를 추출하고, 텍스트로 return 하는 함수이다.

단, 매번 로그인 하는것은 귀찮으니까
puppeteer의 userDataDir 옵션을 활성화하여 브라우저가 종료되어도 로그인 정보가 그대로 남도록 한다.

또한 headless:true로 하여 백그라운드에서 puppeteer가 실행되도록 했을때,
아마도 노벨피아의 자체적인 크롤링 방지 시스템에 의해 403 error가 리턴된다.
이를 막기위해 UserAgent를 변경해주어야만 한다.

결과적으로

노벨피아 텍본 만들기 - nobelpia tegbon mandeulgi

이렇게 텍본이 잘 완성되었다.

대충 하루정도 걸렸는데

이렇게 빨리 할 수 있었던 이유는

노벨피아가 텍스트를 걍 html DOM에 뿌려놓았기 때문이다.

문피아는 조금 더 복잡하다.

문피아는 텍스트가 전용 뷰어(canvas기반)에 펼쳐지기 때문에

단순 파싱으로는 텍스트를 수집할 수 없다.

하지만 방법은 [있다]

노벨피아 텍본 만들기 - nobelpia tegbon mandeulgi

문피아에서 각 소설 url에 접속하여

1. 캔버스뷰가 다 그려질때까지 기다린다.

2. 전체화면 보기를 누른다.

노벨피아 텍본 만들기 - nobelpia tegbon mandeulgi


3. 이상태에서 스크린샷을 찍는다.

노벨피아 텍본 만들기 - nobelpia tegbon mandeulgi


4. 오른쪽 끝에 페이지가 꽉 찰때까지 반복한다.

노벨피아 텍본 만들기 - nobelpia tegbon mandeulgi

5. 이런식으로 각 페이지가 저장된다.

노벨피아 텍본 만들기 - nobelpia tegbon mandeulgi


6. Cloud Vision API를 이용하여 저 이미지에서 텍스트를 추출한다.

노벨피아 텍본 만들기 - nobelpia tegbon mandeulgi

7. 이미지를 싹다 스캔하면 이런식으로 text가 export된다.

노벨피아 텍본 만들기 - nobelpia tegbon mandeulgi

구글 클라우드 api 콘솔을 보면 사용량이 증가한것을 확인할 수 있다.

노벨피아 텍본 만들기 - nobelpia tegbon mandeulgi

행복과 불행에 대하여

인간의 뇌란 참 악의적으로 설계된 기계같다. 즐거움은 시간과 반비례하고 고통과 시간은 비례한다. 인생에서 행복한 시간들은 순식간에 지나가고 불행하고 고통스러운 시간은 더럽게 안흘러간다 이는 인간, 혹은 생물 전체의 원시적인 생존욕구에서 비롯된 본능 때문이라 생각한다. 행복감에 둔감해진 감각은 위협을 마주했을 때 대응하기 어려울 가능성이 높고, 위협으로 예민해진 감각은 위협이 완전히 사라졌다는 판단이 들 때까지 길게 유지되는 편이 위기 대처에 좋기 때문. 그렇다면 우리는 순식간에 소모되는 행복과 계속되는 불행에 어떻게 대처해야 할까? 의식주가 거의 완벽하게 보장된 대한민국에서 우린 어떻게 해야 행복한 삶을 유지할 수 있을까? 답은 2가지라고 생각한다. 주변환경을 바꾼다 인간을 바꾼다 1번은 주변의 환경을 ..

개인적인 이야기 2022. 11. 29. 15:17

카카오 화재 사건과 카카오의 미래에 대한 생각

카카오가 주말 내내 먹통이었다. (의외로 내가 일하는 곳에까지 영향이 가지는 않았음) 카카오같은 초대형 기업과 카카오가 운영하는 초대형서비스가 하루도 아니고 며칠동안 맛이 간것은 한국 IT업계에서 역대급 사건이라 할 수 있겠다. 사람들은 카카오를 욕한다. 내수원툴 K-대기업이라고.. 문어발 사업으로 국내 중소기업 싹다 말려죽인다고.. 틀린말은 아니다. 카카오가 해외에서 돈을 벌어오는것도 아니고 그렇다고 독자적인 기술로 산업을 선도하는것도 아니니까. 그에따른 부정적인 전망으로 주가는 나락을 가고 있다. 하지만 나는 조금 다른 시선으로 바라본다. 카카오는 진짜 거하게 사고치지 않는 한, (이번것보다 더 심각한 사고가 아닌 한) 더 부흥하고 발전할 것이다. 이미 전연령을 아우르며 내수시장을 지배하고 있어서 경..

개발자 이야기 2022. 10. 20. 13:25

지금 시점에서 공감과 성장동력이 되는 글

https://brunch.co.kr/@goodgdg/43

개인적인 이야기 2022. 10. 11. 16:41

2022.09.28 인간실격 줄거리, 느낀점.

'인간실격'을 읽고 주인공 요조는 타인의 감정에 공감하지 못하는 사이코패스다. 그래도 머리는 비상했기 때문에 본인의 마음을 숨길 줄 알았고, 감정을 흉내낼 줄 알았다. 원만한 교우관계, 친구관계, 가족관계는 있었지만 그는 본인이 세계에 섞이지 못하는 상황에 대해 계속 괴로워했다. 고등학교에 올라가고 부모님과 떨어져 살기 시작하면서 본인을 통제할 사람이 사라지자 그는 쾌락에 물들어가기 시작했다. 부유한 부모님이 매달 보내주는 용돈으로 술과 여자에 빠져 학교도 공부도 아예 손을 놓고 살았다. 그는 마르크스와 공산주의에 가볍게 빠져보기도 했지만 깊게 심취하지는 못했고, 그곳에서도 그는 본인을 철저하게 이방인이라 생각했다. 그는 여자와 술에 빠져들어 결국 집안과 의절하고 아무것도 남지 않았다. 매력적인(작중에서..

독서 2022. 9. 28. 18:12

네이버 파파고 vs 구글 번역

출근길에 영어공부하려고 만든 앱 'parsing to BBC' 네이버 파파고의 번역 api를 사용하여 만들었는데 뭔가 예전보다 훨씬 더 번역의 퀄리티가 나빠진것 같다. 뉴스의 헤드라인정도는 문제 없이 번역되어야 하지 않나? 조만간 파파고 api 대신 구글 api로 변경해야겠다.

개발자 이야기 2022. 9. 21. 16:33

2022.09.21 내 인생 책. 학문의 즐거움을 읽다.

학문의 즐거움은 한국인 최초로 필즈상을 수상한 허준이 교수가 수학에 입문하게 만든 교수 히로나카 헤이스케의 자서전이다. 사실 책을 구매하기 전까지만 해도 허준이도, 히로나카 헤이스케도 딱히 관심이 없었다. 그냥 허준이 교수가 필즈상을 수상했던 사실만 단편적으로 기억하고 있을뿐. 책에 몰입하고 이 책이 나의 인생책이라는 생각이 들때쯤 저자에 대해 궁금해졌고, 정보를 찾아보니 허준이였고, 히로나카 헤이스케였던것이다. 이 책의 도입부는 그 어떤 책보다도 내 마음을 설레게 했다. '창조하는 인생이야말로 최고의 인생이다' 되새겨보면 나 자신은 나름대로 창조하는 삶을 추구해왔는데 이를 공감받기 어려운 환경이라 내심 외로웠던것 같다. 그래서 책 너머의 수학자에게 위로받는 느낌이었다. 특히 지금까지 살아오며 겪어왔던 ..

독서 2022. 9. 21. 13:25

네이버와 카카오의 차이

네이버에서 또 새로운 기능이 나왔다. 이름하여 팝송번역기능. 사실 아직도 이 기능을 제공하지 않았다는게 더 웃길정도로 단순한 기능이다. 하지만, 이번에도 네이버가 최초다. 내가 금융IT라는 IT중에선 가장 보수적인 직종에서 일하고 있어서일까 실무에서 혁신적이고 창의적인 아이디어를 접하기가 굉장히 어려운데 가끔 네이버에서 튀어나오는 창의적인 퍼포먼스는 네이버의 미래를 긍정적으로 평가하게끔 만든다. 파파고가 그랬고 클로바노트가 그랬고 클로바보이스가 그랬듯.. (그래서 네이버 주식 쳐박을때마다 모으고 있음) 그에반해 카카오는 마치 모든 내수시장을 노란색으로 물들이길 원하는듯 공격적으로 계열사 늘리기에 집중하는 모양새다. 한국의 미래가 긍정적이지 않고, 카카오는 이미 내수에 한해선 클만큼 큰만큼 새로운 방향성이..

개발자 이야기 2022. 9. 17. 15:34

recoil은, 최신 기술은 항상 옳은가?

recoil 도입, 그후 기존의 recoil을 이용한 컴포넌트의 상태 관리는 내게 있어 매우 혁명적이었다. 그러나 내가 생각하는 컴포넌트의 기능 구현이 상상 이상으로 지연되었고, 그것의 원인 또한 recoil이었다. recoil은 분명 놀랍도록 간결하고 강력한 라이브러리지만 좁은 커뮤니티와 문서를 포함한 다양한 sample code, troubleshooting case의 부족함은 극복하기 어려운 난제였다. 상당히 오랫동안 똥볼만 걷어찬 것은 명확한 output을 뽑아내고자 하는 내 목표에 큰 장애물이다. 다양한 관점에서 이 문제를 바라보고 올바른 방향으로 해결해보도록 하자. 해결방법 결국은 선택이다. 단순하다. recoil을 이용하여 안될것 같다면 redux를 도입하면 된다. 하지만 reocil로 안된..

개발자 이야기 2022. 9. 13. 13:28

추가 정보

250x250

인기글

  1. -

    -

    웹소설 텍본 만드는 법 프로그램 만들기(노벨피아, 문피아)

    2022.02.01 00:00

  2. -

    -

    디씨 개념글 주작 방법 연구

    2021.10.20 01:34

  3. -

    왓챠에서 서비스하는 컨텐츠 목록(현재 7800개)

    2021.12.22 17:28

  4. -

    티빙에서 서비스하는 모든 콘텐츠 목록(현재 8823개)

    2021.12.30 01:03

최신글

  1. -

    행복과 불행에 대하여

    개인적인 이야기

  2. -

    카카오 화재 사건과 카카오의 미래에 대한 생각

    개발자 이야기

  3. -

    지금 시점에서 공감과 성장동력이 되는 글

    개인적인 이야기

  4. -

    2022.09.28 인간실격 줄거리, 느낀점.

    독서