프날 오토핫키 강좌

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

728x90

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

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

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

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

이번에 준비한 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 문서입니다.

 

 

반응형