10. World Wide Web을 통해 주고 받는 정보를 수집하는
자동화 소프트웨어
주로 다음과 같은 곳에 사용할 수 있습니다.
• 기계학습 소프트웨어 개발 시 데이터를 수집할 경우
• 검색엔진을 위해 문서를 수집 할 경우
• 프로젝트에 필요한 컨텐츠를 수집할 때
• 개인적으로 필요한 정보를 주기적으로 수신 받고 싶을 때
9 Web Crawler
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
27. • 자바스크립트에 크롤링 할 내용이 숨겨져 있다면? (멜론 크롤링)
• 분석해봤지만 스크립트가 단순하지 않을 때? (네이버 로그인)
• 브라우저에서 매크로 돌리듯이 사용하고 싶을 때!!
26 The power of browsers
28. 실제 브라우저를 사용해서 크롤링 해보자.
이때 Headless Browser인 PhantomJS는 매우 유용하다.
파이썬에서 PhantomJS를 다루기 위해선 Selenium 모듈이 필요하다.
PhantomJS 란 ?
웹 표준을 따르는 headless Webkit 이다. 자바스크립트를 사용할 수 있으며 DOM, CSS,
JSON, SVG등을 컨트롤 할 수 있다.
Selenium 이란 ??
브라우저와 드라이버로 연결되어 브라우저에서 하는 작업들을 자동화 시킬 수 있다.
selenium은 웹 인터페이스로 동작하며 많은 브라우저가 selenium과 호환이 되고
PhantomJS와도 호환이 된다.
27 Browser
#3: 파이썬 소개 – 한 장 소개
크롤러 소개 – HTML, Javascript, DOM, HTTP
활용1 – 웹 사이트 파일 다운로더, 멜론 스크래퍼 제작
활용2 - 네이버 로그인 (팬텀JS)
#7: class ClassA(object):
email = ''
name = ''
strong = ClassA()
strong.email = 'kelp[at]phate.org'
strong.name = 'Kelp'
모듈, 클래스, 객체와 같은 언어의 요소가 내부에서 접근
for name in dir(strong):
attr = getattr(strong.__class__, name)
if not callable(attr) and name.find('__') != 0:
print('%s = %s' % (name, getattr(strong, name)))