파이썬으로 배우는 웹 크롤러 - 2018 세종도서 학술부문 선정도서, 파이썬 코드 조각으로 데이터 모으기
박정태 지음 / 정보문화사 / 2018년 1월
평점 :
장바구니담기


 웹 크롤러는 페이지를 돌아다니는 행위인 크롤링, 특정 페이지의 데이터를 수집하는 행위 스크래핑의 총칭해서 부릅니다.
이러한 크롤러가 가장 잘 구현된 서비스가 검색엔진입니다. 검색엔진은 크롤러를 통해 다양한 페이지를 수집 후 검색 키워드에 맞추어 사용자에게 제공해 주는 서비스입니다.
크롤러를 만들기 위해서는 클라이언트, 서버, 파이썬이 필요합니다.
클라이언트 - 웹 브라우저 및 웹을 의미합니다. 데이터를 요청하여 받아온 데이터를 사용자들에게 제공합니다.
서버 - 클라이언트가 필요한 데이터를 제공해주는 역할을 합니다.
파이썬 - 다른 언어도 크롤러를 만들수 있지만 파이썬은 다른 언어보다 데이터를 처리하는데 매우 특화되어 있습니다. 
특히 인공지능, 데이터 처리에 관련된 다양한 라이브러리 와 프레임워크를 제공하고 있기 때문에 편리합니다.
서버와 클라이언트의 데이터를 주고받는 방법에는 여러가지가 있지만 주로 GET 과 POST 만 사용합니다.
서버가 클라이언트 요청을 처리하고 난 후 상태에 따라 반환하는 코드가 있습니다.
1xx - 조건부 응답
2xx - 성공 (많이 사용하는 응답 코드는 200, 201,204)
3xx - 리다이렉션 완료
4xx - 요청오류
500 - 서버오류
반환 코드만 보고도 제대로 값이 전달되었는지 안되었는지 알 수 있습니다.
페이지를 파싱하기 위해서 파서를 이용하는데 파이썬에서 lxml, html5lib, html.parser 3가지가 존재합니다.
lxml - lxml 파서는 c언어로 구현되어 있기 때문에 가장 빠릅니다. XML도 처리 가능하지만 c언어로 구현되어 있기때문에 c언어에 의존합니다.
html5lib - html5lib 파서는 웹 브라우저 형태로 HTML를 분석하고 관리합니다. 파이썬으로 구현되어 있기 때문에 lxml처럼 c언어에 의존적이지 않지만  c언어로 구현된 lxml보다 느리다는 단점이 있습니다.
html.parse - 버전에 따라 실행여부가 다르기 때문에 추천하지 않습니다. 다만 속도는 html5lib 보다 빠르고 lxml 보다는 느립니다. 파이썬 2.7.2 버전 에서 3.2.2 버전 에서만 사용이 가능합니다.



댓글(0) 먼댓글(0) 좋아요(2)
좋아요
l 공유하기 l 북마크하기찜하기 lthankstoThanksTo