web crawler 고군분투기
TRANSCRIPT
Web Crawler 고군분투기
@sangjun
# 고군분투준비
Kodevelopers
#고군분투기
# 고군분투종료
크롤러란 ?
창과방패의싸움
결말
Slack : @sangjunFacebook : richellin7Github : richellin7Email : [email protected]
Like : ㅅ .ㅜ .ㄹ ...
일본에서일하는한국인개발자모임 (Kodevelopers) 관리자https://www.facebook.com/groups/1726012127643525/?fref=ts
# 고군분투준비크롤러란 ?
크롤러 (Crawler)
크롤링 (Crawling)
스크랩핑 (Scraping)
크롤러 (Crawler)란 ?
크롤러 = 스파이더 = 로봇 = 봇 크롤러란웹상의문서나이미지를주기적으로 습득해서자동으로 필요한정보를
데이터베이스화하는프로그램
크롤러 (Crawler)란 ? 대표적인크롤러
Googlebot( Google)bingbot(영어판)(마이크로소프트・
bing)Baiduspider(바이두)Yetibot(네이버)
크롤링 (Crawling)이란 ?
크롤러가웹사이트로부터 HTML 이나 임의의 정보를습득 하는기술 또는행위
스크랩핑 (Scraping)이란 ?
습득한 HTML 에서임의의 정보를추출 하는기술또는행위
간단하게정의하자면 ...
크롤러 = 크롤링 + 스크랩핑
크롤러가웹상의무엇을 찾으러떠났죠 ?
원피스
= 필요한정보
출발 !
잠깐 !
동료는 ?
프로토콜(HTTP,HTTPS)
Headless(GUI없는 )
Browser
Full Browser(full 렌더링 )
curl(libcurl)
mechanizeurllib2
httplib2requests
PhantomJSHtmlUnitTrifleJS
Zombie.jsENVJSimerJS
ChromeSafariFirefox
프로토콜(HTTP,HTTPS)
Headless(GUI없는 )Browser
Full Browser(full 렌더링 )
부하높음
부하낮음
유저화면 (랜더링 ) 일치율높음
유저화면 (랜더링 ) 일치율낮음
렌더링
프로토콜(HTTP,HTTPS)
Headless(GUI없는 )Browser
Full Browser(full 렌더링 )
HTML,Cookie 습득
HTML 해석
통신
자바스크립트해석
그리기
#고군분투기 창과방패의
싸움
네이버의인기검색어를 습득한다고가정해봅시다 .
방패창
크롤러
스크랩핑크롤링
방패창 정보가져갈게 ! VS ㄴㄴ시른데
Round 1- Header -
VS 크롤링시작 !User-Agent : X
User-Agent : 없는얘들은다 거부ㅂㅂ
VS
User-Agent : Chrome 어떻냐 ?
하핫
오 ? 위장했다 이거지그럼
Cookie다 !
VSCookie :buid:bjU6/wo...
옴마야 ? Cookie 까지 동작그만 . 밑장빼기냐 ?
VS
Header 싸움은시작되었다 .Referer
HostAccept
Accept-EncodingAccept-Language
…
Round 1창 의승리
Round 2- Javascript -
VSJavascript
분석및해석 ... ( …힘들다 )
자바스크립트로DOM 조작
웹의발전과함께 ...
Javascript 춘추전국시대
VS
....(뷰 ..뷰 ..뷰티 ..)
OTL
널더고통스럽게 .. 넌 M 이고난 S 야
( 자바스크립트 + 난독화 + AJAX +
Token)
VS
마이묵었다 아이가그만해라 .
렌더링된 결과값만받을래 ..
(Headless)
어 ...어 ...어 ...
…
IP차단
VSIP우회 리퀘스트수제한
Round 2창 의승리
( 살을내주고뼈를취함 )
Round 3 사람과컴퓨터구분
VS…?? 뼈를주고살을취하겠다 .
VSGG 뼈를주고살을취하겠다 .
Round 3방패 의승리
( 살을내주고뼈를취함 )
# 고군분투종료결말
최종승리는방패
하지만 !?
AI 에의해현방패는언젠가뚫립니다 .
싸움을멈추는방법은 ?
OPEN API
싫으면 !?
싸움은계속된다 .To be Continued
감사합니다 .