오늘 배워 오늘 쓰는 OpenAPI/프로젝트

웹크롤링 - 웹크롤링 이란? (1/3)

ai-creator 2020. 5. 9. 05:28
반응형

# 웹크롤링이란?

wiki 

# Web의 통신 구조

인터넷 익스플로러나 크롬등을 웹 브라우저라고 한다. 우리가 인터넷을 할때 순서를 생각해보자.

먼저 웹브라우저를 열어서 원하는 주소를 입력한다. 여기서는 www.naver.com을 입력했다고 가정해보자.

위의 홈페이지는 내 컴퓨터에 있는 것이 아니라 홈페이지들을 저장하고 있는 웹서버에서 가지고 온다. 내 컴퓨터가 아닌 멀리 웹 서버에 있는 홈페이지가 과연 어떻게 내 컴퓨터에서 보이는지 간단하게 살펴보자.

(출처 : 조코딩)

 

Step1) 우리가 인터넷을 할때 웹 브라우저를 실행하면 가장 먼저 웹 브라우저는 해당 주소의 홈페이지를 저장하고 있는 웹서버를 찾아가 홈페이지를 달라고 요청한다.

Step2) 홈페이지 요청을 받은 웹 서버는 상대방이 원하는 홈페이지 소스 코드를 인터넷을 통해서 상대방 웹 브라우저에게 보낸다.

 

여기서 중요한 부분이 있다. 웹서버에서 PC의 웹브라우저로 홈페이지를 보낼 때 완성된 홈페이지를 보내는 것이 아니라 HTML로 된 소스 코드 형태로 보낸다는 것이다. 

크롬에서 알고 싶은 내용에 커서를 두고 오른쪽 마우스 > 검사를 하면 웹페이지 구성 정보가 나오는 것을 확인할 수 있다.

 

 

오른쪽 상단에 있는 소스코드를 웹브라우저가 받아서 홈페이지 형태로 만들어서 보여준다. 필요한 곳에 그림도넣고 플래시 이미지나 동영상도 넣어서 예쁘게 홈페이지를 만들어준다.

 

웹 크롤러의 원리가 여기에 있다. 홈페이지의 소스 코드에 글자 관련된 내용이나 그림 관련된 내용도 들어 있고 동영상 관련된 소스도 들어 있다. 그래서 만약 내가 글자를 크롤링 하고 싶은 경우 소스 코드에서 글자 부분만 모으면 되고 그림을 모으고 싶은 경우 그림 관련 부분만 골라내면 된다. , HTML을 통해서 필요한 정보를 스크래핑 한다고 요약할 수 있다.

 

# 웹크롤링 순서 

Step1) 웹페이지 정보를 가져온다.  => python에서는 requests 라이브러리를 사용한다.

Step2) HTML소스를 파싱하여 원하는 정보를 얻는다. => python에서는 beautifulsoup 라이브러리를 사용한다. 

 

(참고) 다양한 파이썬 라이브러리

1. beautifulsoup

보편적으로 사용하기 용이한 라이브러리

html 가독성이 좋아 대부분 잘 읽힌다.

2. selenium

스크래파이, lxml, 뷰티풀 숲 등의 다른 라이브러리가 하지 못하는 동적할당페이지를 유일하게 크롤링 할 수 있다.

Q) 동적할당페이지란?

페이지를 웹상에서 클릭했을 때 코드가 전혀 보이지 않는 구조를 갖고 있는 페이지

하지만 셀리니움은 속도면에서 새로운 페이지를 띄워야 하니 느리다.

 

 

 

 


저작물의 저작권은 작성자에게 있습니다.
공유는 자유롭게 하시되 댓글 남겨주세요~
상업적 용도로는 무단 사용을 금지합니다.
끝까지 읽어주셔서 감사합니다^^

반응형