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

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

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

[프날 오토핫키] WinHTTP #1: 웹 크롤링이란?

프날 오토핫키 강좌에서 파싱이라는 기술을 배웠습니다. 문자열을 입맛에 맞게 가공하는 기술이였죠.

이러한 '파싱'을 이용하는 대표적인 분야로 "웹 크롤링"이 있습니다. 

  • 웹 크롤링: 웹 페이지의 내용을 수집하는 것

웹 크롤링을 하여 웹 페이지 상의 코드를 통째로 가져와서, 필요한 정보만 추출해내는 "파싱"작업이 필요한 것이죠.

이번에 준비한 5강짜리 강좌는 웹 크롤링 강좌입니다. 여러가지 방법이 있지만 WinHTTP라는 기술을 이용하도록 하겠습니다.


 웹 페이지의 정보를 담고 있는 HTML 

HTML은 웹 페이지의 뼈대입니다. 웹 페이지의 HTML만 있으면 웹 페이지의 "요소", 그 중에서도 "텍스트"는 대부분 가져올 수 있습니다.

우리는 간단한 방법을 사용하여 현재 여러분이 있는 페이지의 HTML을 잠깐 들여다 볼 수 있습니다.

현재 여러분이 보시고 있는 웹 페이지에서 키보드의 [F12]버튼을 눌러보세요. 우측에 글씨가 있는 창이 하나 뜹니다. 이 글씨가 바로 HTML 소스코드입니다. (인터넷 익스플로러는 하단에 뜹니다.)

 

HTML만 가져올 수 있다면 웹페이지의 특정 내용을 가져올 수 있으며, 그걸 가공해서 내가 쓸 수 있는 정보로 가공하는 것이지요.

 

우리가 이번 강좌부터 총 5편을 진행할 WinHTTP 강좌는 이러한 '크롤링'을 해볼것입니다.

사용하는 언어는 오토핫키이며, 준비물은 다음 편에서 알려드리도록 하겠습니다.

 


 크롤링은 합법인가? 

여기서부터는 제가 조사한 내용입니다. 틀리거나 잘못된 말이 있을 수 있습니다. 교차검증을 부탁드려요.

 

크롤링은 특정 웹사이트의 요소를 가져오는 일이고, 그 행위 자체로는 불법이 아닌 것으로 알고있습니다. 다만 "해당 사이트 주인에 의사에 반하도록" 크롤링을 하면 문제가 될 수 있습니다. 사이트 소유자는 "이 사이트는 크롤링을 하지 마세요"라는 내용을 사이트 하단, 혹은 약관, 혹은 robots.txt 문서에 적어둡니다.

 

네이버를 볼까요? 

위와 같이, 도메인 주소 뒤에 /robots.txt를 붙이면 네이버가 말하는 크롤링 규약을 볼 수 있습니다.

Disallow: / 라는 줄이 보이지요? 슬래시(/)는 "모든 페이지"를 뜻하고, Disallow는 허용하지 않는다는 뜻입니다.

즉, www.naver.com 의 하위 사이트는 크롤링을 허용하고 있지 않습니다.

 

robots.txt 문서에 적혀있지 않더라도, 약관에 명시되어있거나 사이트 하단(footer)에 적혀있는 경우도 있으니 꼼꼼히 따져보아야합니다.

 

물론, robots.txt는 크롤링이 불가능하도록 기술적으로 강제할 수 없습니다. "권고안"에 가깝지요. 그렇지만, 이는 사이트 소유자가 크롤링을 원치 않는다는 뜻이기도 합니다. 이를 상업적으로 이용하거나, 무리하게 크롤링하면 처벌받을 수 있는 것은 맞습니다. ("잡코리아"와 "사람인"의 분쟁이 이에 대한 판례를 만들어주었습니다.)

 

따라서 강좌에서는 지금 보고계신 "프날" 사이트를 대상 페이지로 해서 예제를 작성할 것입니다.

여러분들이 공부 목적으로 한 두번 정도 "프날" 사이트를 크롤링 하는 것은 좋지만, 이 "프날" 서버에 짧은 시간 안에 반복적으로 접근해서 서버에 무리를 가하는 일은 삼가해주세요. 제 서버가 아니라 티스토리 서버라서 그럽니다.

'프날'의 robots.txt 문서입니다.