SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Web Crawler
고군분투기
@sangjun
#고군분투 준비
Kodevelopers
#고군분투기
#고군분투 종료
크롤러란?
창과 방패의 싸
움
결말
Slack : @sangjun
Facebook : richellin7
Github : richellin7
Email : richellin7@gmail.com
Like : ㅅ.ㅜ.ㄹ...
일본에서 일하는 한국인 개발자 모임(Kodevelopers) 관리자
https://www.facebook.com/groups/1726012127643525/?fref=ts
#고군분투 준비
크롤러란?
크롤러(Crawler)
크롤링(Crawling)
스크랩핑(Scraping)
크롤러(Crawler)란?
크롤러 = 스파이더 = 로봇 = 봇
크롤러란 웹상의 문서나 이미지를 주기적으로 습
득해서 자동으로 필요한 정보를 데이터베이스화
하는 프로그램
크롤러(Crawler)란?
대표적인 크롤러
Googlebot(Google)
bingbot(영어판)(마이크로소프트・
ng)
Baiduspider(바이두)
Yetibot(네이버)
크롤링(Crawling)이란?
크롤러가 웹 사이트로 부터 HTML이나
임의의 정보를 습득하는 기술 또는 행위
스크랩핑(Scraping)이란?
습득한 HTML에서 임의의 정보를 추출하는
기술 또는 행위
간단 하게 정의 하자면...
크롤러 = 크롤링 + 스크랩핑
크롤러가 웹상의 무엇을 찾
으러 떠났죠?
원피스
= 필요한 정보
출발!
잠깐!
동료는?
프로토콜
(HTTP,HTTPS)
Headless(GUI없는)
Browser
Full Browser
(full 렌더링)
curl(libcurl)
mechanize
urllib2
httplib2
requests
PhantomJS
HtmlUnit
TrifleJS
Zombie.js
ENVJS
imerJS
Chrome
Safari
Firefox
프로토콜
(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
다!
VS
Cookie :
buid:bjU6/wo...
옴마야? Cookie까
지
동작 그만.
밑장 빼기냐?
VS
Header 싸움은 시작 되었다.
Referer
Host
Accept
Accept-Encoding
Accept-Language
…
Round 1
창의 승리
Round 2
- Javascript -
VS
Javascript
분석 및 해석...
(힘들다…)
자바 스크립트로
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
감사 합니다.

Weitere ähnliche Inhalte

Was ist angesagt?

The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)Eunjeong (Lucy) Park
 
프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)
프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)
프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)Osori Hanyang
 
Node.js를 활용한 웹 크롤링(Crawling)
Node.js를 활용한 웹 크롤링(Crawling)Node.js를 활용한 웹 크롤링(Crawling)
Node.js를 활용한 웹 크롤링(Crawling)Jeong-gyu Kim
 
파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링HWANGTAEYONG
 
141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍Changwon Choe
 
스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료라한사 아
 
언론사에서 개발자는 무슨 일을 하나요?
언론사에서 개발자는 무슨 일을 하나요?언론사에서 개발자는 무슨 일을 하나요?
언론사에서 개발자는 무슨 일을 하나요?슬 김
 
Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편준철 박
 
HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장Hyejin Oh
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 YoungSu Son
 
Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기Inho Kwon
 
휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치Juneyoung Oh
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기Changwan Jun
 
Kakao Bot(Plus friend)
Kakao Bot(Plus friend)Kakao Bot(Plus friend)
Kakao Bot(Plus friend)SeongSik Choi
 
Google Hacking
Google HackingGoogle Hacking
Google HackingIlsun Choi
 
Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자용진 조
 
스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기라한사 아
 
Story About Git_oh4851
Story About Git_oh4851Story About Git_oh4851
Story About Git_oh4851Hyeok Oh
 
Parse.com 맛보기
Parse.com 맛보기Parse.com 맛보기
Parse.com 맛보기flashscope
 

Was ist angesagt? (20)

The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)
 
프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)
프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)
프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)
 
Node.js를 활용한 웹 크롤링(Crawling)
Node.js를 활용한 웹 크롤링(Crawling)Node.js를 활용한 웹 크롤링(Crawling)
Node.js를 활용한 웹 크롤링(Crawling)
 
파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링
 
141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍
 
스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료
 
언론사에서 개발자는 무슨 일을 하나요?
언론사에서 개발자는 무슨 일을 하나요?언론사에서 개발자는 무슨 일을 하나요?
언론사에서 개발자는 무슨 일을 하나요?
 
Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편
 
HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장
 
Soma search
Soma searchSoma search
Soma search
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기
 
Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기
 
휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기
 
Kakao Bot(Plus friend)
Kakao Bot(Plus friend)Kakao Bot(Plus friend)
Kakao Bot(Plus friend)
 
Google Hacking
Google HackingGoogle Hacking
Google Hacking
 
Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자
 
스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기
 
Story About Git_oh4851
Story About Git_oh4851Story About Git_oh4851
Story About Git_oh4851
 
Parse.com 맛보기
Parse.com 맛보기Parse.com 맛보기
Parse.com 맛보기
 

Ähnlich wie Web Crawler 고군분투기

2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리Jay Park
 
Web devmobile 8회열린세미나
Web devmobile 8회열린세미나Web devmobile 8회열린세미나
Web devmobile 8회열린세미나Pumsuk Cho
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)
SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)
SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)Eunchan Lee
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기MinGeun Park
 
2020년 7월 19일 개발 이야기 정리
2020년 7월 19일 개발 이야기 정리2020년 7월 19일 개발 이야기 정리
2020년 7월 19일 개발 이야기 정리Jay Park
 
2021년 2월 6일 개발자 이야기
2021년 2월 6일 개발자 이야기2021년 2월 6일 개발자 이야기
2021년 2월 6일 개발자 이야기Jay Park
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Jinsoo Jung
 
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER Engineering
 
토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드Justin Park
 
안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들Sewon Ann
 
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?williciousk
 

Ähnlich wie Web Crawler 고군분투기 (12)

2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리
 
Web devmobile 8회열린세미나
Web devmobile 8회열린세미나Web devmobile 8회열린세미나
Web devmobile 8회열린세미나
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)
SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)
SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
 
2020년 7월 19일 개발 이야기 정리
2020년 7월 19일 개발 이야기 정리2020년 7월 19일 개발 이야기 정리
2020년 7월 19일 개발 이야기 정리
 
2021년 2월 6일 개발자 이야기
2021년 2월 6일 개발자 이야기2021년 2월 6일 개발자 이야기
2021년 2월 6일 개발자 이야기
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
 
토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드
 
안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들
 
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
 

Web Crawler 고군분투기

Hinweis der Redaktion

  1. 보통 크롤링에는 스크랩핑이 기술이 포함 되어져 있습니다.
  2. 보통 크롤링에는 스크랩핑이 기술이 포함 되어져 있습니다.
  3. 보통 크롤링에는 스크랩핑이 기술이 포함 되어져 있습니다.
  4. 보통 크롤링에는 스크랩핑이 기술이 포함 되어져 있습니다.
  5. 보통 크롤링에는 스크랩핑이 기술이 포함 되어져 있습니다.
  6. 보통 크롤링에는 스크랩핑이 기술이 포함 되어져 있습니다.
  7. 지코방식 이냐 웹킷 방식이냐
  8. 부분적인 손해를 무릅쓰고, 대국적인 이익을 취해야 한다. 36꼐 - 이대도강 "복숭아나무를 대신해서 오얏나무가 말라 죽다”
  9. 부분적인 손해를 무릅쓰고, 대국적인 이익을 취해야 한다. 36꼐 "복숭아나무를 대신해서 오얏나무가 말라 죽다”
  10. 부분적인 손해를 무릅쓰고, 대국적인 이익을 취해야 한다. 36꼐 "복숭아나무를 대신해서 오얏나무가 말라 죽다”
  11. 부분적인 손해를 무릅쓰고, 대국적인 이익을 취해야 한다. 36꼐 "복숭아나무를 대신해서 오얏나무가 말라 죽다”
  12. 부분적인 손해를 무릅쓰고, 대국적인 이익을 취해야 한다. 36꼐 "복숭아나무를 대신해서 오얏나무가 말라 죽다”