반응형

안녕하세요. 지난 시간에 이어 python을 이용한 웹 크롤러를 만드는 시간을 갖도록 하겠습니다. 웹 크롤러 개념은 아래 링크에서 확인하시면 감사하겠습니다.

 

 

[python] 웹 크롤러(Web crawler)-01.개념

안녕하세요. 이번 시간에는 웹 크롤러(Web crawler)에 대해 간단히 설명을 하겠습니다. 웹 크롤러는 자동으로 웹 사이트의 내용을 수집하는 로봇(robot)입니다. 우리가 익히 알고 있는 구글(google), 네이버(naver..

python-an.tistory.com

프로그래밍을 이용한 데이터 수집은 크게 API(Application Programming Interface)를 통한 수집 래퍼(wrapper) 기반 수집기를 이용한 데이터 수집이 있습니다. 

 

API를 이용한 수집: 네이버, 구글 등 여러 서비스에서는 자체적으로 API 제공하므로 공개된 문서를 참고해 쉽게 데이터를 수집할 수 있습니다.

 

래퍼 기반 수집기: API를 제공하지 않아 특정 웹 사이트의 구조에 맞춘 수집 프로그램

 

서비스에서 API를 제공하지 않을 경우에 래퍼 기반 수집기를 만들어야 합니다.

 

오늘 실습에서는 예쓰24(YES24)에서 검색된 결과에서 도서목록을 갖고 오도록 하겠습니다.

 

출처: http://www.yes24.com/24/category/bestseller?CategoryNumber=117&sumgb=06

 

1. 웹 사이트의 페이지 소스코드 보기

 

앞선 시간에 웹 사이트는 HTML이라는 구조화된 언어로 구성되었다고 설명을 드렸습니다. 여기서 페이지 소스코드 보기는 HTML 소스코드를 보는 것입니다. 페이지 소스코드 보기는 키보드에서 "F12" 입니다.

 

 

2. 원하는 데이터의 위치 확인하기

 

페이지 소스코드 보기를 하셨다면 이젠 우리가 원하는 데이터가 HTML에서 어디에 위치하였는지를 확인해야 합니다.

아래 그림에서와 같이 icon을 클릭합니다. 이 기능은 해당 데이터가 있는 곳을 찾아줍니다.

 

 

해당 icon을 클릭한 후 좌측 이미지가 있는 부분에 마우스 커서(cursor)를 갖다 대시면 선택된 영역은 파랑색으로 변하는 것을 확인할 수 있습니다.

 

물론 한개의 데이터만 수집할 수 있습니다만 모든 데이터를 수집하기 위해 화면에 있는 모든 데이터가 포함 될 수 있는 위치를 찾고 마우스 좌클릭을 합니다.

 

 

좌클릭을 하시면 아래 그림처럼 우리가 원하는 데이터가 파랑색 소스코드에 포함되어 있다는 것을 확인할 수 있습니다.

 

그리고 삼각형 icon을 클릭해 숨겨져 있는 소스코드를 계속 확인합니다. HTML은 사이트의 layout을 일일이 정해주어야 하기 때문에 우리도 점진적으로 구조를 탐색할 필요가 있습니다. 이러한 과정을 거쳐 최종적으로 노이즈가 가장 적은 "알맹이" 부분을 찾는 것을 목표로 합니다.

 

 

드디어 "알맹이" 부분을 찾았습니다. 아래 두 그림을 보시면 첫번째 코드에 전체 데이터가 포함이 되어 있는 것을 알 수 있습니다. 두번째 그림에서는 1개의 데이터만 선택이 된것을 알 수 있습니다. 우리는 첫번째 그림의 소스코드 부분의 데이터를 프로그래밍을 통해 갖고 오면 됩니다.

 

각 이미지의 HTML 소스코드를 순차적으로 확인해 보시면 구조는 똑같고 데이터만 다른 것을 확인하실 수 있습니다. 즉 데이터 개수만큼 소스코드가 반복됩니다. 

 

 

 

다음 시간에 도서의 제목과 URL 주소를 갖고 오는 실습을 진행하도록 하겠습니다.

 

감사합니다.

 

 

python 배우기 : 네이버 카페

본 카페에서는 python 프로그래밍을 함계 학습하고 더 나아가 python을 이용해 크롤러, 기계학습을 학습

cafe.naver.com

 

+ Recent posts