프날 오토핫키 강좌
누르면 강좌 리스트가 나와요
프날 오토핫키 강좌

⚠ 이 강좌는 오토핫키 v1을 다룹니다

지금 보시는 강좌는 구버전 오토핫키(v1.1)를 다루고 있습니다. 따라서 본 강좌의 내용은 현재 최신 오토핫키 버전 (v2.0)과 호환되지 않습니다. 구버전의 정보가 필요한 것이 아니라면, 가능한 한 새로운 사이트에 작성한 v2 강좌(https://ahkv2.pnal.dev)를 봐주시길 바랍니다.

[프날 오토핫키] WinHTTP #2: 웹 크롤링 준비하기

웹 크롤링은 특정 웹사이트의 소스코드를 가져오는 행동이라고 했습니다. 본격적으로 웹 크롤링을 진행하기 전에, 간단한 준비부터 해보겠습니다.


 웹 크롤링 기초 상식 

웹 크롤링은 크게 두 가지 개념으로 나뉘는데, "정적 크롤링"과 "동적 크롤링"으로 나뉩니다.

  • 정적 크롤링: 정적인 웹 페이지를 크롤링 할 때 사용합니다.
  • 동적 크롤링: 동적인 웹 페이지를 크롤링 할 때 사용합니다.

정적인 웹 페이지는 어떠한 상황에서도 항상 일관된 페이지를 보여주는 경우를 말합니다. 예를 들면 특정 음식점의 메뉴를 소개하는 페이지가 있으면, 그 페이지는 항상 모든 사용자들에게 똑같게 보일것입니다.

 

반면, 동적인 웹 페이지는 사용자에 따라 다른 데이터를 보여주는 경우를 말합니다. 예를 들면 회원가입이 필요한 특정 사이트에서 "내 정보"라는 페이지를 볼 때, 사용자가 다르다면 서로 다른 정보들을 보겠지요.

 

정적인 페이지와 동적인 페이지는 아래와 같은 특징들을 가집니다.

  정적 페이지 동적 페이지
통일성 같은 URL에선 같은 페이지를 보여줌 같은 URL이라도 다른 요소를 보여줄 수 있음
접근성 URL을 직접 입력해서 들어갈 수 있음 URL을 직접 입력해도 다른 요소를 보여줄 수 있음
페이지 HTML에 웹 브라우저에 표현되는 모든 요소가 있음 HTML에 없는 요소가 웹 브라우저에 표현될 수 있음

정적 크롤링이 동적 크롤링에 비해 더 쉽습니다.

다음 강부터는 정적 크롤링을 한번 진행해볼것입니다. 

 


 우리가 배울 WinHTTP는요 

WinHTTP는 인터넷 통신을 위해 마이크로소프트 사에서 개발한 통신 라이브러리입니다.

GDIP 강좌를 보신 분들은 알겠지만, "라이브러리"는 "함수의 묶음"이라고 했습니다. 즉, 우리는 WinHTTP에 있는 각종 함수들을 사용하여 웹과 통신을 진행할 것입니다.

 

웹에 값을 보내고, 정보를 받는 작업을 해보며, 기초적인 크롤링 작업을 해봅시다.


 웹 크롤링에 필요한 준비물 

1. 웹브라우저

일단 정적 크롤링과 동적 크롤링 모두 "웹 브라우저"는 필요합니다. 웹 브라우저에서 크롤링 대상 페이지에 들어가, URL을 알아내긴 해야하기 때문입니다.

URL

위 사진과 같이, 웹브라우저는 현재 접속하고 있는 페이지의 URL을 보여줍니다.

 

2. 피들러

그리고, 동적 크롤링은 여러 방식이 있지만 우리는 WinHTTP POST 라는 방식을 이용하여 크롤링 해보도록 하겠습니다.

이러한 WinHTTP POST 방식의 크롤링을 진행하려면 우선 "피들러"라는 프로그램이 필요합니다. HTTP나 HTTPS 프로토콜을 이용한 네트워크 통신을 포착해줄 수 있는 프로그램입니다.

 

 

Fiddler - Free Web Debugging Proxy - Telerik

Fiddler is a free web debugging tool which logs all HTTP(S) traffic between your computer and the Internet. Inspect traffic, set breakpoints, and fiddle with incoming or outgoing data.

www.telerik.com

위 링크는 피들러 공식 다운로드 링크이며, 다운로드 후 설치하는 방법은 따로 설명드리지 않습니다. 알아서 잘 딱 깔끔하고 센스있게 설치하시면 됩니다.