Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

141118 최창원 웹크롤러제작

26,279 views

Published on

How to make basic web crawler using Python?

- 로그인 샘플의 오류 수정 (2015.7.31)

Published in: Software
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

141118 최창원 웹크롤러제작

  1. 1. 0 Python Web Crawler Development 인천대학교 OneScore 200901319 최창원
  2. 2. 1 INDEX. 1 2 3 4 발표 소개 파이썬 소개 크롤러 소개 다운로더 &스크래퍼 5 다음 로그인 6 마무리 으리
  3. 3. 2 발표 소개 1
  4. 4. 3 파이썬이 뭔대? 거대하고 자동화된 크롤러를 제작하는 방법은 아닌 웹 크롤러를 만드는데 필요한 기초지식 전달 팬텀JS 사용? 소스코드 설명, 실습위주의 진행 오늘 할 내용
  5. 5. 1991년 귀도 반 로섬에 의해 탄생 문법이 쉽고 직관적이다. built-in 라이브러리가 많아 할 수 있는게 매우 많다. 크로스 플랫폼을 지원한다. 4 Why Python?
  6. 6. 인터프리터위에서 실행된다. C와 Java와 다른 동적 타이핑을 사용한다. 강력한 리플렉션이 가능하다. 5 Feature
  7. 7. <모 Naver 카페> 6 Web Crawler
  8. 8. <스포츠 기사> 7 Web Crawler
  9. 9. <뉴스 기사> 8 Web Crawler
  10. 10. World Wide Web을 통해 주고 받는 정보를 수집하는 자동화 소프트웨어 주로 다음과 같은 곳에 사용할 수 있습니다. • 기계학습 소프트웨어 개발 시 데이터를 수집할 경우 • 검색엔진을 위해 문서를 수집 할 경우 • 프로젝트에 필요한 컨텐츠를 수집할 때 • 개인적으로 필요한 정보를 주기적으로 수신 받고 싶을 때 9 Web Crawler
  11. 11. 10 Search Engine
  12. 12. 1) HTTP Requests (GET, POST) 2) HTTP Response (HTML, Javacript, ETC Files) Web Server 11 Web Crawler
  13. 13. <hi-bogo.net 메인 페이지 접속 했을 때> 12 HTTP GET (Request)
  14. 14. <hi-bogo.net 로그인 할 때> 13 HTTP POST (Request)
  15. 15. <http://news.naver.com/main/search/search.nhn?query=%B1%B8%B1%DB&x=0&y=0> <HTML - 계층구조> 14 HTML (Response)
  16. 16. 15 https://play.google.com/store/apps/details?id=com.kakao.talk&hl=ko HTML + AJAX!!? (Response)
  17. 17. Requests • 간편하고 쉬운 메서드 • HTTP 프로토콜 조작이 쉬움 • SSL 걱정 ㄴㄴ BeatifulSoup4 • HTML 파싱 트리 생성 • HTML 검색 및 순회(네비게이팅)가 쉬움 참고 http://pythonhackers.com/open-source/ http://www.crummy.com/software/BeautifulSoup/bs4/doc/ http://docs.python-requests.org/en/latest/ 16 Python Modules
  18. 18. 17 네이버 인기 검색어 크롤링 ㄱㄱ
  19. 19. 18 #-*- encoding: utf-8 -*- #실시간 검색어 import requests as rs import bs4 def getTopRank(): naver_url = 'http://www.naver.com' #1)요청 response = rs.get(naver_url) #2)응답으로 부터 HTML 추출 html_content = response.text.encode(response.encoding); ............ Requests 예제 (네이버 인기 검색어)
  20. 20. 19 ............ BeautifulSoup 예제 #2)응답으로 부터 HTML 추출 html_content = response.text.encode(response.encoding); #3)HTML 파싱 navigator = bs4.BeautifulSoup(html_content) #4)네비게이터를 이용해 원하는 태그 리스트 가져오기 realRankTag = navigator.find_all(id='realrank') resultList = realRankTag[0].find_all('a') #5)키워드 추출 keywords = [item['title'] for item in resultList] #6)키워드 출력 for index, keyword in enumerate(keywords): resultText = '[%d위] %s'%(index,keyword.encode('utf-8')) print resultText.decode('utf-8').encode('euc-kr')
  21. 21. 20 네이버 인기 검색어 크롤링 실습 https://github.com/qwefgh90/Web_Crawler naverTopRank.py
  22. 22. 21 게시판 문서 다운로더 ㄱㄱ
  23. 23. • 다운받을 파일이 너무 많아 일일히 클릭하기 지치고 힘들 때 ! • 배운거 활용해보고 싶을 때 • 잉여로울 때 사실 그다지 쓸모는 없습니다... 22 게시판 문서 다운로더
  24. 24. 구현 절차 1. 파일 다운로드를 요청하는 부분을 분석 2. 똑같은 헤더와 페이로드를 만들어서 똑같은 요청을 다시 보내본다. 3. 요청한 파일이 응답에 제대로 담겨있는지? HTTP 응답코드가 200인지 확인? 4. 파일로 저장한다. 23 게시판 문서 다운로더
  25. 25. 24 게시판 문서 다운로더 실습 https://github.com/qwefgh90/Web_Crawler delphi_downloader.py
  26. 26. 25 그러나 항상 이처럼 쉬운 것은 아닙니다...!
  27. 27. • 자바스크립트에 크롤링 할 내용이 숨겨져 있다면? (멜론 크롤링) • 분석해봤지만 스크립트가 단순하지 않을 때? (네이버 로그인) • 브라우저에서 매크로 돌리듯이 사용하고 싶을 때!! 26 The power of browsers
  28. 28. 실제 브라우저를 사용해서 크롤링 해보자. 이때 Headless Browser인 PhantomJS는 매우 유용하다. 파이썬에서 PhantomJS를 다루기 위해선 Selenium 모듈이 필요하다. PhantomJS 란 ? 웹 표준을 따르는 headless Webkit 이다. 자바스크립트를 사용할 수 있으며 DOM, CSS, JSON, SVG등을 컨트롤 할 수 있다. Selenium 이란 ?? 브라우저와 드라이버로 연결되어 브라우저에서 하는 작업들을 자동화 시킬 수 있다. selenium은 웹 인터페이스로 동작하며 많은 브라우저가 selenium과 호환이 되고 PhantomJS와도 호환이 된다. 27 Browser
  29. 29. Phantomjs.exe WebDriver Resources Web Server Browsing 28 Crawler with browser
  30. 30. 29 네이버 로그인 후 세션취득 https://github.com/qwefgh90/SeleniumSample crawler.py
  31. 31. 30 감사합니다.

×