[フレーム]
WL
Uploaded bywangwon Lee
21,410 views

[2018 데이터야놀자] 웹크롤링 좀 더 잘하기

2018 데이터야 놀자 '웹 크롤링 좀 더 잘하기'의 세션 발표자료입니다.

Embed presentation

Downloaded 389 times
웹 크롤링 좀 더 잘하기 2018. 10. 19 2018 데이터야 놀자 University of seoil Computer electronic Wangwon Lee College Major Name
Contents  발표자 소개  이런 이야기를 하고 싶어요!  웹 크롤링 개요  기본적인 웹 크롤링  동적 페이지 개요  동적 페이지 크롤링  마무리 2018 데이터야 놀자
2018 데이터야 놀자 발표자 소개 - 이왕원  전자부품연구원 인공지능연구센터 위촉연구원  서일대학교 소프트웨어 공학과 재학 중  실시간 데이터 수집 프로젝트인 KoShort 컨트리뷰터  아직 많이 부족합니다. 여러분께 많이 배우고 싶어요!
발표자 소개 - 이왕원  전자부품연구원 인공지능연구센터 위촉연구원  서일대학교 소프트웨어 공학과 재학 중  실시간 데이터 수집 프로젝트인 KoShort 컨트리뷰터  아직 많이 부족합니다. 여러분께 많이 배우고 싶어요! 웹 크롤링은 자료 찾기가 너무 힘들어서 제가 먼저 공유하고자 이렇게 발표하게 되었어요. 이걸 계기로 웹크롤링도 많은 정보 공유가 있었으면 해요.  2018 데이터야 놀자
2018 데이터야 놀자 이런 이야기를 하고 싶어요!  차근차근 짚어보는 웹크롤링의 흐름  데이터 수집 및 정제 실무를 하면서 느낀 이상과 현실  구글이나 책에서는 찾을 수 없는 꿀팁 공유!  실시간 데이터 수집 오픈소스 Koshort 홍보
2018 데이터야 놀자 이런 이야기를 하고 싶어요! 페이지 측에서 제공하는 API가 있는가? 성능보다 생산성이 우선읶가? 웹드라이버를 사용하지 않는 것만으로 해결 가능한가? - Case 3 - - Case 4 - - Case 5 - 오늘은 이 흐름을 토대로 웹 크롤링을 차근차근 짚어볼거에요 Yes No - Case 2 -- Case 1 - 정보는 다 있는데 브라우저와 소스가 다른가? 페이지를 가져왔을 때 모든 정보가 다 있는가? No No No No Yes Yes Yes Yes 정적 페이지 동적 페이지
2018 데이터야 놀자 웹 크롤링 개요 흔한 웹 크롤러의 흐름.jpg
2018 데이터야 놀자 웹 크롤링 개요 HTTP에는, GET과 POST와 같은 메소드가 있는데
2018 데이터야 놀자 웹 크롤링 개요 GET은 가져오는 동작, POST는 수행하는 동작 을 위해 설계되었어요.
2018 데이터야 놀자 웹 크롤링 개요 우리가 쓰는 웹 브라우저라는 친구들은
2018 데이터야 놀자 웹 크롤링 개요 HTML 소스를 해석해서 웹 페이지를 그려주는 역할을 해요 표시된 화면 HTML 소스
2018 데이터야 놀자 웹 크롤링 개요 따라서 브라우저 주소 창에 주소를 입력하고 엔터를 치는 것은 +
2018 데이터야 놀자 웹 크롤링 개요 주소에 할당된 웹 서버로 GET 요청을 보내서 웹 페이지를 가져오는 동작이에요
2018 데이터야 놀자 웹 크롤링 개요 음... Request 모듈로 대상 사이트에 get 요청을 해서 HTML 소스를 받아오고, BeautifulSoup로 원하는 부붂만 파싱해서 쓰면 되겠지...? 통상적인 웹 크롤러 또한 같은 원리로, GET 메소드를 통해 웹 페이지를 가져와서, 원하는 부붂만 뽑아 쓰는 개념이에요.
웹 크롤링 개요 음... Request 모듈로 대상 사이트에 get 요청을 해서 HTML 소스를 받아오고, BeautifulSoup로 원하는 부붂만 파싱해서 쓰면 되겠지...? 통상적인 웹 크롤러 또한 같은 원리로, GET 메소드를 통해 웹 페이지를 가져와서, 원하는 부붂만 뽑아 쓰는 개념이에요. 이제 실제 사례를 통해 한 번 알아볼게요!~ 2018 데이터야 놀자
2018 데이터야 놀자 기본적인 웹 크롤링 - Case 1 - 페이지를 받아오면 정보가 그대로 있는 경우 네이버 인기검색어
2018 데이터야 놀자 기본적인 웹 크롤링 - Case 1 - 페이지를 받아오면 정보가 그대로 있는 경우 네이버 인기검색어 HTML 태그와 그에 따른 속성(class, id 등)을 토대로 필요한 정보만 파싱해서 추출.
2018 데이터야 놀자 기본적인 웹 크롤링 유튜브 실시간 인기 동영상 - Case 2 - 정보는 다 있는데, 브라우저 상에서와 내가 받은 소스가 다른 경우
- Case 2 - 정보는 다 있는데, 브라우저 상에서와 내가 받은 소스가 다른 경우 2018 데이터야 놀자 기본적인 웹 크롤링 유튜브 실시간 인기 동영상 당황하지 말고, user-agent를 변경해보자! (보통 ‘i-explorer’가 디폴트인 경우가 많음)
2018 데이터야 놀자 기본적인 웹 크롤링 - Case ? - 내가 받은 페이지에서는 정보가 일부만 있거나 아예 앆보이는 경우 - Vogue Korea - - Google Trend - - Reddit - - Facebook -
기본적인 웹 크롤링 - Case ? - 내가 받은 페이지에서는 정보가 일부만 있거나 아예 앆보이는 경우 - Vogue Korea - - Google Trend - - Reddit - - Facebook - 일단 Javascript를 비홗성화 시켜보자! 2018 데이터야 놀자
2018 데이터야 놀자 기본적인 웹 크롤링 만약 크롬 개발자 도구에서 자바스크립트를 비홗성화 했을 때 웹브라우저 상에서도 동일한 증상이 보인다면? F5 구글 트렌드
2018 데이터야 놀자 기본적인 웹 크롤링 만약 크롬 개발자 도구에서 자바스크립트를 비홗성화 했을 때 웹브라우저 상에서도 동일한 증상이 보인다면? F5 구글 트렌드 이건 100% 동적 페이지!
2018 데이터야 놀자 동적 페이지 개요 페이지가 Javascript를 통해 동적으로 렌더링되는 경우에는 정적: 동적:
2018 데이터야 놀자 동적 페이지 개요 아까 말한 단순한 방식으로는 크롤링할 수 없어요 ᅲᅮ - 페이지를 받아오면 아무 정보도 없는 경우 - Google trend, 과거의 youtube 등이 대표적. HTML로 페이지의 틀을 잡고, 페이지가 로딩 되면서 동적으로 정보를 받아서 표시하는 방식. - 페이지를 받아오면 일부의 정보만 있는 경우 - Facebook, naver datalab, vogue korea 등 대부붂의 사이트가 이런 식. 처음에는 일부붂의 정보만 표시하고 이후에 사용자가 정보를 더 요청하는 동작을 한다면 추가적으로 정보를 받아서 표시하는 방식. - Google Trend - - Facebook -
2018 데이터야 놀자 동적 페이지 개요 물론 포기하라는 법은 없기에 다 방법이 있는데요.
2018 데이터야 놀자 동적 페이지 개요 좀 해보싞 고수님들은 흐름상 이 생각을 하고 계시겠지만 웹 드라이버 (Web Driver): 웹브라우저 UI 테스팅 툴. ‘동적 로딩 지원+브라우징 자동화’라는 장점으로 크롤링 할 때 많이 쓰임.
2018 데이터야 놀자 동적 페이지 개요 Web Driver: 웹브라우저 UI 테스팅 툴. ‘동적 로딩 지원+브라우징 자동화 가능’이라는 장점으로 웹 크롤링 할 때 많이 쓰임. 오늘은 웹드라이버를 쓰지 않고 이 문제를 해결하는 것도 다룰거에요. (웹드라이버 쓰는 건 다들 많이 아시니깐;;)
동적 페이지 개요 Web Driver: 웹브라우저 UI 테스팅 툴. ‘동적 로딩 지원+브라우징 자동화 가능’이라는 장점으로 웹 크롤링 할 때 많이 쓰임. 오늘은 웹드라이버를 쓰지 않고 이 문제를 해결하는 것도 다룰거에요. (웹드라이버 쓰는 건 구글링하면 금방 찾으니깐;;) 그러면 이제부터 동적 페이지 수집 방법과, 그에 따른 장·단점을 같이 알아봐요! 2018 데이터야 놀자
2018 데이터야 놀자 동적 페이지 크롤링 페이지 측에서 제공하는 API가 있는가? 성능보다 생산성이 우선읶가? 웹드라이버를 사용하지 않는 것만으로 해결 가능한가? - Case 3 - - Case 4 - - Case 5 - 동적 페이지를 크롤링하기 젂에, 저 3가지를 꼭 체크해보는 것이 중요해요. Yes No No Yes Yes No
2018 데이터야 놀자 동적 페이지 크롤링 - Case 3 - 페이지에서 제공하는 API가 있는 경우 => API 홗용 유튜브 실시간 인기 동영상
2018 데이터야 놀자 동적 페이지 크롤링 유튜브, 페이스북같은 경우는 자체적으로 제공하는 ‘Data API’가 존재해요
2018 데이터야 놀자 동적 페이지 크롤링 유튜브, 페이스북같은 경우는 자체적으로 제공하는 ‘Data API’가 존재해요 장점 : 싞뢰도 보장, 빠름 단점 : API 키 필요, 쓰는법 배워야 함;; 이거 있는 줄 모르고 삽질하다가 나중에 발견하면 복장터짐
2018 데이터야 놀자 동적 페이지 크롤링 웹 드라이버 (Web Driver): 웹브라우저 UI 테스팅 툴. ‘동적 로딩 지원+브라우징 자동화’라는 장점으로 크롤링 할 때 많이 쓰임. - Case 4 - 성능보다 생산성이 우선인 경우 => 웹 드라이버(Web Driver)
동적 페이지 크롤링 2018 데이터야 놀자 가져오려는 데이터가 그리 크지 않으면서 한 번 쓰고 버릴 용도와 같이 성능보다는 일단 당장 되는 것을 만들어야 할 경우 뿐만 아니라 참고 영상 오명운님 - Selenium 테스트 영상
동적 페이지 크롤링 2018 데이터야 놀자 그냥 귀찮을 때 보통 동적 페이지 수집할 때는 이걸 많이 써요. 참고 영상 How to Web Scrape with Python (Selenium/ChromeDriver)
동적 페이지 크롤링 2018 데이터야 놀자 그냥 귀찮을 때 보통 동적 페이지 수집할 때는 이걸 많이 써요. 참고 영상 How to Web Scrape with Python (Selenium/ChromeDriver) 장점 : 생산성, 익혀놓으면 웹페이지 반복작업에도 쓸 수 있음 단점 : 느림, 무거움, Python과 독립된 도구 필요 , 네트워크 상태의 영향을 크게 받음
2018 데이터야 놀자 동적 페이지 크롤링 보그 코리아 구글 트렌드 - Case 5 - 최적화가 필요한 경우 => 네트워크 리버싱을 통한 데이터 송·수싞 구조 추정 Koshort
2018 데이터야 놀자 동적 페이지 크롤링 보그 코리아, 구글 트렌드와 같이 점진적으로 로딩되는 페이지에서 실시갂·지속적인 데이터 수집이 필요한 경우나 보그 코리아 구글 트렌드
Koshort 동적 페이지 크롤링 저처럼 라이브러리로서 사람들에게 제공해야할 때와 같이 특수한 케이스가 왕왕 있어요 2018 데이터야 놀자 라이브러리라는 특성 상 ‘API 키’, ‘웹드라이버’와 같이 파이썬에 독립적인 요소를 사용하는 것은 최대한 피해야 하며, 생산 시간이 더 들더라도 성능을 최대화해야 함.
Koshort 동적 페이지 크롤링 저처럼 라이브러리로서 사람들에게 제공해야할 때와 같이 특수한 케이스가 왕왕 있어요 2018 데이터야 놀자 라이브러리라는 특성 상 ‘API 키’, ‘웹드라이버’와 같이 파이썬에 독립적인 요소를 사용하는 것은 최대한 피해야 하며, 생산 시간이 더 들더라도 성능을 최대화해야 함. 지금부터 이럴 때 사용하는 방법을 같이 알아봐요!
2018 데이터야 놀자 동적 페이지 크롤링 - Case 5-1 - 페이지를 받아왔는데, 정보가 일부 밖에 없는 경우 보그 코리아
2018 데이터야 놀자 동적 페이지 크롤링 - Case 5-1 - 페이지를 받아왔는데, 정보가 일부 밖에 없는 경우 보그 코리아 데이터가 로딩되는 시점의 Ajax 요청을 붂석한다!
2018 데이터야 놀자 동적 페이지 크롤링 많은 사이트에서 처음에는 일부 데이터만 보여주다가 ‘스크롤 다운’ 동작이나 ‘더 로드하기’ 버튺 등을 통해서 동적으로 사이트를 보여주는 방식을 사용하는데요. Scroll down! Data Load!
2018 데이터야 놀자 동적 페이지 크롤링 이런 경우에는 데이터가 로딩되는 동작을 한 시점의 Ajax 요청을 보면서 그 데이터가 어디서 오는 지 붂석해요. 이 사이트의 경우에는 URL의 특정 엔드포인트를 통해서 데이터를 요청한다는 것을 알 수 있어요 
2018 데이터야 놀자 동적 페이지 크롤링 시험삼아 10페이지 정도 크롤링 해 봤을 때, 무려 3배 가까운 성능 향상을 보였다는 사실! 웹드라이버 사용 : 52[s] 웹드라이버 미사용 : 17[s]
동적 페이지 크롤링 시험삼아 10페이지 정도 크롤링 해 봤을 때, 무려 3배 가까운 성능 향상을 보였다는 사실! 웹드라이버 사용 : 52[s] 웹드라이버 미사용 : 17[s] 테스트는 데스크탑 유선랜 홖경에서 실행하였고, 네트워크 홖경에 따라서 결과가 달라질 수 있어요! 멀티스레딩, 멀티프로세싱 등으로 붂산처리를 구현한다면, 더 높은 퍼포먼스를 기대할 수 있어요  2018 데이터야 놀자
2018 데이터야 놀자 동적 페이지 크롤링 - Case 5-2 - 페이지를 받아왔는데, 정보가 하나도 없는 경우 구글 트렌드
2018 데이터야 놀자 동적 페이지 크롤링 - Case 5-2 - 페이지를 받아왔는데, 정보가 하나도 없는 경우 구글 트렌드 처음 페이지가 로딩되는 시점부터 Ajax 요청 흐름을 따라가며 파악한다!
2018 데이터야 놀자 동적 페이지 크롤링 정적인 HTML은 틀을 만드는 용도로만 쓰고, 데이터는 모조리 JS로 처리하는 방식인데요.
2018 데이터야 놀자 동적 페이지 크롤링 구글 트렌드의 실시갂 급상승 검색어의 경우, 페이지를 로드하면 일단 키워드에 해당하는 젂체 리스트를 가져오고 구글 트렌드
2018 데이터야 놀자 동적 페이지 크롤링 그 리스트의 요소들을 하나씩 요청해서 가져오는 방식이에요. 구글 트렌드
2018 데이터야 놀자 동적 페이지 크롤링 역시나 이 경우에도 9배 정도의 향상을 확인할 수 있었어요! 이 경우도 멀티스레딩 등을 통해서 더 최적화가 가능하답니다  웹드라이버 사용 : 54[s] 웹드라이버 미사용 : 6[s]
2018 데이터야 놀자 동적 페이지 크롤링 역시나 이 경우에도 9배 정도의 향상을 확인할 수 있었어요! 이 경우도 멀티스레딩 등을 통해서 더 최적화가 가능하답니다  웹드라이버 사용 : 54[s] 웹드라이버 미사용 : 6[s] 장점 : 빠름, 가벼움 단점 : 번거로움;;, 웹개발에 대한 지식 필요
2018 데이터야 놀자 마무리
2018 데이터야 놀자 마무리 이면 참 좋으렦만......
2018 데이터야 놀자 마무리 페이지 측에서 제공하는 API가 있는가? 성능보다 생산성이 우선읶가? 웹드라이버를 사용하지 않는 것만으로 해결 가능한가? - Case 3 - - Case 4 - - Case 5 - 오늘 얘기하지 못한 것도, 앞으로 헤쳐나가야 할 것도 너무너무 많아요 ᅲᅲ Yes No - Case 2 -- Case 1 - 정보는 다 있는데 브라우저와 소스가 다른가? 페이지를 가져왔을 때 모든 정보가 다 있는가? No No No No Yes Yes Yes Yes 정적 페이지 동적 페이지 앞으로의 험난한 여정
2018 데이터야 놀자 마무리 페이지 측에서 제공하는 API가 있는가? 성능보다 생산성이 우선읶가? 웹드라이버를 사용하지 않는 것만으로 해결 가능한가? - Case 3 - - Case 4 - - Case 5 - 오늘 얘기하지 못한 것도, 앞으로 헤쳐나가야 할 것도 너무너무 많아요 ᅲᅲ Yes No - Case 2 -- Case 1 - 정보는 다 있는데 브라우저와 소스가 다른가? 페이지를 가져왔을 때 모든 정보가 다 있는가? No No No No Yes Yes Yes Yes 정적 페이지 동적 페이지 앞으로의 험난한 여정그래서 여러붂께 많이 배우고자 해요......
2018 데이터야 놀자 마무리 잘 부탁 드립니다 ᅲᅲ
마무리 잘 부탁 드립니다 ᅲᅲ https://github.com/BbChip0103/2018_datayanolja_webcrawling.git Case 5의 소스코드는 여기서 확인하실 수 있어요  2018 데이터야 놀자

More Related Content

파이썬을 활용한 웹 크롤링
PDF
파이썬을 활용한 웹 크롤링
웹 크롤링 (Web scraping) 의 이해
PPTX
웹 크롤링 (Web scraping) 의 이해
인공지능추천시스템 airs개발기_모델링과시스템
PDF
인공지능추천시스템 airs개발기_모델링과시스템
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
PDF
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
PDF
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -
PDF
Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -
A beginner's guide to machine learning for SEOs - WTSFest 2022
PDF
A beginner's guide to machine learning for SEOs - WTSFest 2022
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
PDF
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링
웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -
Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -
A beginner's guide to machine learning for SEOs - WTSFest 2022
A beginner's guide to machine learning for SEOs - WTSFest 2022
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정

What's hot

RDF 해설서
PDF
RDF 해설서
NDC 11 자이언트 서버의 비밀
PPTX
NDC 11 자이언트 서버의 비밀
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
PPTX
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
webservice scaling for newbie
PDF
webservice scaling for newbie
elasticsearch_적용 및 활용_정리
PPTX
elasticsearch_적용 및 활용_정리
개발을잘하고싶어요-네이버랩스 송기선님
PDF
개발을잘하고싶어요-네이버랩스 송기선님
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
PDF
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
토스 이직기 & 적응기 (99Con)
PDF
토스 이직기 & 적응기 (99Con)
원페이지 보고서
PDF
원페이지 보고서
실시간 게임 서버 최적화 전략
PDF
실시간 게임 서버 최적화 전략
신입 개발자 생활백서 [개정판]
PDF
신입 개발자 생활백서 [개정판]
Web Crawling
PDF
Web Crawling
RDF 개념 및 구문 소개
PPTX
RDF 개념 및 구문 소개
Scrapy-101
PPTX
Scrapy-101
데이터는 차트가 아니라 돈이 되어야 한다.
PDF
데이터는 차트가 아니라 돈이 되어야 한다.
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
PDF
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
The beginner’s guide to 웹 크롤링 (스크래핑)
PPTX
The beginner’s guide to 웹 크롤링 (스크래핑)
신뢰성 높은 클라우드 기반 서비스 운영을 위한 Chaos Engineering in Action (윤석찬, AWS 테크에반젤리스트) :: ...
PDF
신뢰성 높은 클라우드 기반 서비스 운영을 위한 Chaos Engineering in Action (윤석찬, AWS 테크에반젤리스트) :: ...
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
PDF
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
PDF
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
RDF 해설서
RDF 해설서
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
webservice scaling for newbie
webservice scaling for newbie
elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리
개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
토스 이직기 & 적응기 (99Con)
토스 이직기 & 적응기 (99Con)
원페이지 보고서
원페이지 보고서
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]
Web Crawling
Web Crawling
RDF 개념 및 구문 소개
RDF 개념 및 구문 소개
Scrapy-101
Scrapy-101
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)
신뢰성 높은 클라우드 기반 서비스 운영을 위한 Chaos Engineering in Action (윤석찬, AWS 테크에반젤리스트) :: ...
신뢰성 높은 클라우드 기반 서비스 운영을 위한 Chaos Engineering in Action (윤석찬, AWS 테크에반젤리스트) :: ...
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)

Similar to [2018 데이터야놀자] 웹크롤링 좀 더 잘하기

비즈니스 데이터 크롤링
PDF
비즈니스 데이터 크롤링
141118 최창원 웹크롤러제작
PPTX
141118 최창원 웹크롤러제작
Selenium basics for crawling web data with Python
PPTX
Selenium basics for crawling web data with Python
Selenium을 이용한 동적 사이트 크롤러 만들기
PPTX
Selenium을 이용한 동적 사이트 크롤러 만들기
프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)
PPTX
프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)
[Week2] 데이터 스크래핑
PDF
[Week2] 데이터 스크래핑
웹크롤러 조사
PDF
웹크롤러 조사
python으로 고양이짤 다운로드
PPTX
python으로 고양이짤 다운로드
I/O Extended 2019 Seoul - What's New in Web
PDF
I/O Extended 2019 Seoul - What's New in Web
[제12회 인터넷 리더십] 온라인 네트워크를 전략적 홍보_검색_전은서
PDF
[제12회 인터넷 리더십] 온라인 네트워크를 전략적 홍보_검색_전은서
3.web의역사와browser
PPTX
3.web의역사와browser
2017. 프론트엔드 트랜드
PDF
2017. 프론트엔드 트랜드
20131217 html5
PDF
20131217 html5
제 13회 인터넷리더십프로그램_ 검색서비스 전은서
PDF
제 13회 인터넷리더십프로그램_ 검색서비스 전은서
[121]네이버 효과툰 구현 이야기
PDF
[121]네이버 효과툰 구현 이야기
파알못의 파이썬 크롤러 이해하기
PDF
파알못의 파이썬 크롤러 이해하기
Data Engineering 101
PDF
Data Engineering 101
Kit-Works Team Study_브라우저 검색 과정_20250704_손문수.pptx
PPTX
Kit-Works Team Study_브라우저 검색 과정_20250704_손문수.pptx
01.모바일 프레임워크 이론
PDF
01.모바일 프레임워크 이론
언론사에 구글 애널리틱스 도입하기 - 강의 1주차
PDF
언론사에 구글 애널리틱스 도입하기 - 강의 1주차
비즈니스 데이터 크롤링
비즈니스 데이터 크롤링
141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작
Selenium basics for crawling web data with Python
Selenium basics for crawling web data with Python
Selenium을 이용한 동적 사이트 크롤러 만들기
Selenium을 이용한 동적 사이트 크롤러 만들기
프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)
프로젝트 기획서 발표 - 웹크롤링 (한양대 오픈소스동아리)
[Week2] 데이터 스크래핑
[Week2] 데이터 스크래핑
웹크롤러 조사
웹크롤러 조사
python으로 고양이짤 다운로드
python으로 고양이짤 다운로드
I/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in Web
[제12회 인터넷 리더십] 온라인 네트워크를 전략적 홍보_검색_전은서
[제12회 인터넷 리더십] 온라인 네트워크를 전략적 홍보_검색_전은서
3.web의역사와browser
3.web의역사와browser
2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드
20131217 html5
20131217 html5
제 13회 인터넷리더십프로그램_ 검색서비스 전은서
제 13회 인터넷리더십프로그램_ 검색서비스 전은서
[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기
파알못의 파이썬 크롤러 이해하기
파알못의 파이썬 크롤러 이해하기
Data Engineering 101
Data Engineering 101
Kit-Works Team Study_브라우저 검색 과정_20250704_손문수.pptx
Kit-Works Team Study_브라우저 검색 과정_20250704_손문수.pptx
01.모바일 프레임워크 이론
01.모바일 프레임워크 이론
언론사에 구글 애널리틱스 도입하기 - 강의 1주차
언론사에 구글 애널리틱스 도입하기 - 강의 1주차

[2018 데이터야놀자] 웹크롤링 좀 더 잘하기

  • 1.
    웹 크롤링 좀 더 잘하기 2018. 10. 19 2018 데이터야 놀자 University of seoil Computer electronic Wangwon Lee College Major Name
  • 2.
    Contents  발표자 소개  이런 이야기를 하고 싶어요!  웹 크롤링 개요  기본적인 웹 크롤링  동적 페이지 개요  동적 페이지 크롤링  마무리 2018 데이터야 놀자
  • 3.
    2018 데이터야 놀자 발표자 소개 - 이왕원  전자부품연구원 인공지능연구센터 위촉연구원  서일대학교 소프트웨어 공학과 재학 중  실시간 데이터 수집 프로젝트인 KoShort 컨트리뷰터  아직 많이 부족합니다. 여러분께 많이 배우고 싶어요!
  • 4.
    발표자 소개 - 이왕원  전자부품연구원 인공지능연구센터 위촉연구원  서일대학교 소프트웨어 공학과 재학 중  실시간 데이터 수집 프로젝트인 KoShort 컨트리뷰터  아직 많이 부족합니다. 여러분께 많이 배우고 싶어요! 웹 크롤링은 자료 찾기가 너무 힘들어서 제가 먼저 공유하고자 이렇게 발표하게 되었어요. 이걸 계기로 웹크롤링도 많은 정보 공유가 있었으면 해요.  2018 데이터야 놀자
  • 5.
    2018 데이터야 놀자 이런 이야기를 하고 싶어요!  차근차근 짚어보는 웹크롤링의 흐름  데이터 수집 및 정제 실무를 하면서 느낀 이상과 현실  구글이나 책에서는 찾을 수 없는 꿀팁 공유!  실시간 데이터 수집 오픈소스 Koshort 홍보
  • 6.
    2018 데이터야 놀자 이런 이야기를 하고 싶어요! 페이지 측에서 제공하는 API가 있는가? 성능보다 생산성이 우선읶가? 웹드라이버를 사용하지 않는 것만으로 해결 가능한가? - Case 3 - - Case 4 - - Case 5 - 오늘은 이 흐름을 토대로 웹 크롤링을 차근차근 짚어볼거에요 Yes No - Case 2 -- Case 1 - 정보는 다 있는데 브라우저와 소스가 다른가? 페이지를 가져왔을 때 모든 정보가 다 있는가? No No No No Yes Yes Yes Yes 정적 페이지 동적 페이지
  • 7.
    2018 데이터야 놀자 웹 크롤링 개요 흔한 웹 크롤러의 흐름.jpg
  • 8.
    2018 데이터야 놀자 웹 크롤링 개요 HTTP에는, GET과 POST와 같은 메소드가 있는데
  • 9.
    2018 데이터야 놀자 웹 크롤링 개요 GET은 가져오는 동작, POST는 수행하는 동작 을 위해 설계되었어요.
  • 10.
    2018 데이터야 놀자 웹 크롤링 개요 우리가 쓰는 웹 브라우저라는 친구들은
  • 11.
    2018 데이터야 놀자 웹 크롤링 개요 HTML 소스를 해석해서 웹 페이지를 그려주는 역할을 해요 표시된 화면 HTML 소스
  • 12.
    2018 데이터야 놀자 웹 크롤링 개요 따라서 브라우저 주소 창에 주소를 입력하고 엔터를 치는 것은 +
  • 13.
    2018 데이터야 놀자 웹 크롤링 개요 주소에 할당된 웹 서버로 GET 요청을 보내서 웹 페이지를 가져오는 동작이에요
  • 14.
    2018 데이터야 놀자 웹 크롤링 개요 음... Request 모듈로 대상 사이트에 get 요청을 해서 HTML 소스를 받아오고, BeautifulSoup로 원하는 부붂만 파싱해서 쓰면 되겠지...? 통상적인 웹 크롤러 또한 같은 원리로, GET 메소드를 통해 웹 페이지를 가져와서, 원하는 부붂만 뽑아 쓰는 개념이에요.
  • 15.
    웹 크롤링 개요 음... Request 모듈로 대상 사이트에 get 요청을 해서 HTML 소스를 받아오고, BeautifulSoup로 원하는 부붂만 파싱해서 쓰면 되겠지...? 통상적인 웹 크롤러 또한 같은 원리로, GET 메소드를 통해 웹 페이지를 가져와서, 원하는 부붂만 뽑아 쓰는 개념이에요. 이제 실제 사례를 통해 한 번 알아볼게요!~ 2018 데이터야 놀자
  • 16.
    2018 데이터야 놀자 기본적인 웹 크롤링 - Case 1 - 페이지를 받아오면 정보가 그대로 있는 경우 네이버 인기검색어
  • 17.
    2018 데이터야 놀자 기본적인 웹 크롤링 - Case 1 - 페이지를 받아오면 정보가 그대로 있는 경우 네이버 인기검색어 HTML 태그와 그에 따른 속성(class, id 등)을 토대로 필요한 정보만 파싱해서 추출.
  • 18.
    2018 데이터야 놀자 기본적인 웹 크롤링 유튜브 실시간 인기 동영상 - Case 2 - 정보는 다 있는데, 브라우저 상에서와 내가 받은 소스가 다른 경우
  • 19.
    - Case 2 - 정보는 다 있는데, 브라우저 상에서와 내가 받은 소스가 다른 경우 2018 데이터야 놀자 기본적인 웹 크롤링 유튜브 실시간 인기 동영상 당황하지 말고, user-agent를 변경해보자! (보통 ‘i-explorer’가 디폴트인 경우가 많음)
  • 20.
    2018 데이터야 놀자 기본적인 웹 크롤링 - Case ? - 내가 받은 페이지에서는 정보가 일부만 있거나 아예 앆보이는 경우 - Vogue Korea - - Google Trend - - Reddit - - Facebook -
  • 21.
    기본적인 웹 크롤링 - Case ? - 내가 받은 페이지에서는 정보가 일부만 있거나 아예 앆보이는 경우 - Vogue Korea - - Google Trend - - Reddit - - Facebook - 일단 Javascript를 비홗성화 시켜보자! 2018 데이터야 놀자
  • 22.
    2018 데이터야 놀자 기본적인 웹 크롤링 만약 크롬 개발자 도구에서 자바스크립트를 비홗성화 했을 때 웹브라우저 상에서도 동일한 증상이 보인다면? F5 구글 트렌드
  • 23.
    2018 데이터야 놀자 기본적인 웹 크롤링 만약 크롬 개발자 도구에서 자바스크립트를 비홗성화 했을 때 웹브라우저 상에서도 동일한 증상이 보인다면? F5 구글 트렌드 이건 100% 동적 페이지!
  • 24.
    2018 데이터야 놀자 동적 페이지 개요 페이지가 Javascript를 통해 동적으로 렌더링되는 경우에는 정적: 동적:
  • 25.
    2018 데이터야 놀자 동적 페이지 개요 아까 말한 단순한 방식으로는 크롤링할 수 없어요 ᅲᅮ - 페이지를 받아오면 아무 정보도 없는 경우 - Google trend, 과거의 youtube 등이 대표적. HTML로 페이지의 틀을 잡고, 페이지가 로딩 되면서 동적으로 정보를 받아서 표시하는 방식. - 페이지를 받아오면 일부의 정보만 있는 경우 - Facebook, naver datalab, vogue korea 등 대부붂의 사이트가 이런 식. 처음에는 일부붂의 정보만 표시하고 이후에 사용자가 정보를 더 요청하는 동작을 한다면 추가적으로 정보를 받아서 표시하는 방식. - Google Trend - - Facebook -
  • 26.
    2018 데이터야 놀자 동적 페이지 개요 물론 포기하라는 법은 없기에 다 방법이 있는데요.
  • 27.
    2018 데이터야 놀자 동적 페이지 개요 좀 해보싞 고수님들은 흐름상 이 생각을 하고 계시겠지만 웹 드라이버 (Web Driver): 웹브라우저 UI 테스팅 툴. ‘동적 로딩 지원+브라우징 자동화’라는 장점으로 크롤링 할 때 많이 쓰임.
  • 28.
    2018 데이터야 놀자 동적 페이지 개요 Web Driver: 웹브라우저 UI 테스팅 툴. ‘동적 로딩 지원+브라우징 자동화 가능’이라는 장점으로 웹 크롤링 할 때 많이 쓰임. 오늘은 웹드라이버를 쓰지 않고 이 문제를 해결하는 것도 다룰거에요. (웹드라이버 쓰는 건 다들 많이 아시니깐;;)
  • 29.
    동적 페이지 개요 Web Driver: 웹브라우저 UI 테스팅 툴. ‘동적 로딩 지원+브라우징 자동화 가능’이라는 장점으로 웹 크롤링 할 때 많이 쓰임. 오늘은 웹드라이버를 쓰지 않고 이 문제를 해결하는 것도 다룰거에요. (웹드라이버 쓰는 건 구글링하면 금방 찾으니깐;;) 그러면 이제부터 동적 페이지 수집 방법과, 그에 따른 장·단점을 같이 알아봐요! 2018 데이터야 놀자
  • 30.
    2018 데이터야 놀자 동적 페이지 크롤링 페이지 측에서 제공하는 API가 있는가? 성능보다 생산성이 우선읶가? 웹드라이버를 사용하지 않는 것만으로 해결 가능한가? - Case 3 - - Case 4 - - Case 5 - 동적 페이지를 크롤링하기 젂에, 저 3가지를 꼭 체크해보는 것이 중요해요. Yes No No Yes Yes No
  • 31.
    2018 데이터야 놀자 동적 페이지 크롤링 - Case 3 - 페이지에서 제공하는 API가 있는 경우 => API 홗용 유튜브 실시간 인기 동영상
  • 32.
    2018 데이터야 놀자 동적 페이지 크롤링 유튜브, 페이스북같은 경우는 자체적으로 제공하는 ‘Data API’가 존재해요
  • 33.
    2018 데이터야 놀자 동적 페이지 크롤링 유튜브, 페이스북같은 경우는 자체적으로 제공하는 ‘Data API’가 존재해요 장점 : 싞뢰도 보장, 빠름 단점 : API 키 필요, 쓰는법 배워야 함;; 이거 있는 줄 모르고 삽질하다가 나중에 발견하면 복장터짐
  • 34.
    2018 데이터야 놀자 동적 페이지 크롤링 웹 드라이버 (Web Driver): 웹브라우저 UI 테스팅 툴. ‘동적 로딩 지원+브라우징 자동화’라는 장점으로 크롤링 할 때 많이 쓰임. - Case 4 - 성능보다 생산성이 우선인 경우 => 웹 드라이버(Web Driver)
  • 35.
    동적 페이지 크롤링 2018 데이터야 놀자 가져오려는 데이터가 그리 크지 않으면서 한 번 쓰고 버릴 용도와 같이 성능보다는 일단 당장 되는 것을 만들어야 할 경우 뿐만 아니라 참고 영상 오명운님 - Selenium 테스트 영상
  • 36.
    동적 페이지 크롤링 2018 데이터야 놀자 그냥 귀찮을 때 보통 동적 페이지 수집할 때는 이걸 많이 써요. 참고 영상 How to Web Scrape with Python (Selenium/ChromeDriver)
  • 37.
    동적 페이지 크롤링 2018 데이터야 놀자 그냥 귀찮을 때 보통 동적 페이지 수집할 때는 이걸 많이 써요. 참고 영상 How to Web Scrape with Python (Selenium/ChromeDriver) 장점 : 생산성, 익혀놓으면 웹페이지 반복작업에도 쓸 수 있음 단점 : 느림, 무거움, Python과 독립된 도구 필요 , 네트워크 상태의 영향을 크게 받음
  • 38.
    2018 데이터야 놀자 동적 페이지 크롤링 보그 코리아 구글 트렌드 - Case 5 - 최적화가 필요한 경우 => 네트워크 리버싱을 통한 데이터 송·수싞 구조 추정 Koshort
  • 39.
    2018 데이터야 놀자 동적 페이지 크롤링 보그 코리아, 구글 트렌드와 같이 점진적으로 로딩되는 페이지에서 실시갂·지속적인 데이터 수집이 필요한 경우나 보그 코리아 구글 트렌드
  • 40.
    Koshort 동적 페이지 크롤링 저처럼 라이브러리로서 사람들에게 제공해야할 때와 같이 특수한 케이스가 왕왕 있어요 2018 데이터야 놀자 라이브러리라는 특성 상 ‘API 키’, ‘웹드라이버’와 같이 파이썬에 독립적인 요소를 사용하는 것은 최대한 피해야 하며, 생산 시간이 더 들더라도 성능을 최대화해야 함.
  • 41.
    Koshort 동적 페이지 크롤링 저처럼 라이브러리로서 사람들에게 제공해야할 때와 같이 특수한 케이스가 왕왕 있어요 2018 데이터야 놀자 라이브러리라는 특성 상 ‘API 키’, ‘웹드라이버’와 같이 파이썬에 독립적인 요소를 사용하는 것은 최대한 피해야 하며, 생산 시간이 더 들더라도 성능을 최대화해야 함. 지금부터 이럴 때 사용하는 방법을 같이 알아봐요!
  • 42.
    2018 데이터야 놀자 동적 페이지 크롤링 - Case 5-1 - 페이지를 받아왔는데, 정보가 일부 밖에 없는 경우 보그 코리아
  • 43.
    2018 데이터야 놀자 동적 페이지 크롤링 - Case 5-1 - 페이지를 받아왔는데, 정보가 일부 밖에 없는 경우 보그 코리아 데이터가 로딩되는 시점의 Ajax 요청을 붂석한다!
  • 44.
    2018 데이터야 놀자 동적 페이지 크롤링 많은 사이트에서 처음에는 일부 데이터만 보여주다가 ‘스크롤 다운’ 동작이나 ‘더 로드하기’ 버튺 등을 통해서 동적으로 사이트를 보여주는 방식을 사용하는데요. Scroll down! Data Load!
  • 45.
    2018 데이터야 놀자 동적 페이지 크롤링 이런 경우에는 데이터가 로딩되는 동작을 한 시점의 Ajax 요청을 보면서 그 데이터가 어디서 오는 지 붂석해요. 이 사이트의 경우에는 URL의 특정 엔드포인트를 통해서 데이터를 요청한다는 것을 알 수 있어요 
  • 46.
    2018 데이터야 놀자 동적 페이지 크롤링 시험삼아 10페이지 정도 크롤링 해 봤을 때, 무려 3배 가까운 성능 향상을 보였다는 사실! 웹드라이버 사용 : 52[s] 웹드라이버 미사용 : 17[s]
  • 47.
    동적 페이지 크롤링 시험삼아 10페이지 정도 크롤링 해 봤을 때, 무려 3배 가까운 성능 향상을 보였다는 사실! 웹드라이버 사용 : 52[s] 웹드라이버 미사용 : 17[s] 테스트는 데스크탑 유선랜 홖경에서 실행하였고, 네트워크 홖경에 따라서 결과가 달라질 수 있어요! 멀티스레딩, 멀티프로세싱 등으로 붂산처리를 구현한다면, 더 높은 퍼포먼스를 기대할 수 있어요  2018 데이터야 놀자
  • 48.
    2018 데이터야 놀자 동적 페이지 크롤링 - Case 5-2 - 페이지를 받아왔는데, 정보가 하나도 없는 경우 구글 트렌드
  • 49.
    2018 데이터야 놀자 동적 페이지 크롤링 - Case 5-2 - 페이지를 받아왔는데, 정보가 하나도 없는 경우 구글 트렌드 처음 페이지가 로딩되는 시점부터 Ajax 요청 흐름을 따라가며 파악한다!
  • 50.
    2018 데이터야 놀자 동적 페이지 크롤링 정적인 HTML은 틀을 만드는 용도로만 쓰고, 데이터는 모조리 JS로 처리하는 방식인데요.
  • 51.
    2018 데이터야 놀자 동적 페이지 크롤링 구글 트렌드의 실시갂 급상승 검색어의 경우, 페이지를 로드하면 일단 키워드에 해당하는 젂체 리스트를 가져오고 구글 트렌드
  • 52.
    2018 데이터야 놀자 동적 페이지 크롤링 그 리스트의 요소들을 하나씩 요청해서 가져오는 방식이에요. 구글 트렌드
  • 53.
    2018 데이터야 놀자 동적 페이지 크롤링 역시나 이 경우에도 9배 정도의 향상을 확인할 수 있었어요! 이 경우도 멀티스레딩 등을 통해서 더 최적화가 가능하답니다  웹드라이버 사용 : 54[s] 웹드라이버 미사용 : 6[s]
  • 54.
    2018 데이터야 놀자 동적 페이지 크롤링 역시나 이 경우에도 9배 정도의 향상을 확인할 수 있었어요! 이 경우도 멀티스레딩 등을 통해서 더 최적화가 가능하답니다  웹드라이버 사용 : 54[s] 웹드라이버 미사용 : 6[s] 장점 : 빠름, 가벼움 단점 : 번거로움;;, 웹개발에 대한 지식 필요
  • 55.
  • 56.
  • 57.
    2018 데이터야 놀자 마무리 페이지 측에서 제공하는 API가 있는가? 성능보다 생산성이 우선읶가? 웹드라이버를 사용하지 않는 것만으로 해결 가능한가? - Case 3 - - Case 4 - - Case 5 - 오늘 얘기하지 못한 것도, 앞으로 헤쳐나가야 할 것도 너무너무 많아요 ᅲᅲ Yes No - Case 2 -- Case 1 - 정보는 다 있는데 브라우저와 소스가 다른가? 페이지를 가져왔을 때 모든 정보가 다 있는가? No No No No Yes Yes Yes Yes 정적 페이지 동적 페이지 앞으로의 험난한 여정
  • 58.
    2018 데이터야 놀자 마무리 페이지 측에서 제공하는 API가 있는가? 성능보다 생산성이 우선읶가? 웹드라이버를 사용하지 않는 것만으로 해결 가능한가? - Case 3 - - Case 4 - - Case 5 - 오늘 얘기하지 못한 것도, 앞으로 헤쳐나가야 할 것도 너무너무 많아요 ᅲᅲ Yes No - Case 2 -- Case 1 - 정보는 다 있는데 브라우저와 소스가 다른가? 페이지를 가져왔을 때 모든 정보가 다 있는가? No No No No Yes Yes Yes Yes 정적 페이지 동적 페이지 앞으로의 험난한 여정그래서 여러붂께 많이 배우고자 해요......
  • 59.
    2018 데이터야 놀자 마무리 잘 부탁 드립니다 ᅲᅲ
  • 60.
    마무리 잘 부탁 드립니다 ᅲᅲ https://github.com/BbChip0103/2018_datayanolja_webcrawling.git Case 5의 소스코드는 여기서 확인하실 수 있어요  2018 데이터야 놀자

AltStyle によって変換されたページ (->オリジナル) /