-
Referer를 이용한 네이버 웹툰 크롤링Portfolio/인증과 크롤링 2018. 12. 18. 23:02728x90
HTTP의 요청 헤더 중 하나인 'Referer'은 현재 페이지의 이전 페이지를 가리킨다.
때문에 Referer헤더는 해당 사용자가 어디에서 온지를 알 수 있기 때문에 방문자에 대한 로그를 기록하여 통계를 내는 등에 활용할 수 있다.
사실 이 referer은 refferer이 되어야 했다. RFC 문서에서 refferer를 referer로 f를 하나 빼고 적었기 때문에 그대로 referer로 사용되고 있다. (자세한 내용)
본론으로 들어가 이 글에서는 네이버 웹툰 다운로더에서 사용된 Referer 헤더 변경을 통한 웹툰 이미지 다운로드에 대해 알아보겠다.
먼저 네이버 웹툰 이미지에 대한 간단한 request를 작성해서 날려보았다.
referer이 없는(주석처리 된) 코드는 실행하면 다음과 같은 결과를 보여준다.
- 주석 처리된 referer. 없는 것과 같음. -
- 403 Forbidden 응답이 오며 이미지 파일이 응답 되지 않음. -
위와 같이 referer를 지정하지 않았을 경우 403 Forbidden이 발생하는 것을 확인 할 수 있다. 이와 함께 이미지 역시 확인할 수 없다.
그럼 다음과 같이 referer를 지정해보자.
여러가지 넣어본 결과 referer로 지정되는 것은 https://naver.com/ 도메인의 것이라면 아무거나 상관 없는 것 같다.
(search.naver.com / cafe.naver.com 등등)
여기서는 개연성 있게 comic.naver.com로 지정해서 요청을 날렸다.
- comic.naver.com으로 지정된 referer -
- 요청에 응답으로 날아온 네이버 웹툰의 이미지 -
[사용된 코드]
const request = require('request');request({uri:"https://image-comic.pstatic.net/webtoon/20853/1153/20181214182919_6007d7e75c2c5686306d2281a23b1ad8_IMAG01_1.jpg",headers: {accept:'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',acceptEncoding:'gzip, deflate, sdch',acceptLanguage:'ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4',connection:'keep-alive',referer:"https://search.naver.com/",upgradeInsecureRequests:'1',userAgent:'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'},encoding: 'binary'}, function (error, response, body) {if (!error && response.statusCode == 200) {console.log(response);} else {console.log(response);}});'Portfolio > 인증과 크롤링' 카테고리의 다른 글
웹 소켓으로 주고받는 데이터 크롤링하기(In GOPAX Notice) (0) 2019.02.21 Facebook 쿠키를 이용해 로그인하면 2단계 인증이 우회된다. (21) 2019.01.07 Facebook 쿠키 분석 (c_user, xs) (22) 2019.01.06 Daum 쿠키 분석 (HM_CU, HTS, PROF, TS, LSID) (0) 2018.12.31 Youtube 쿠키 분석 (HSID, SID, SSID) (0) 2018.12.25 NID_AUT와 NID_SES 쿠키를 이용한 네이버 로그인 처리 (4) 2018.12.21