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

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

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

[프날 오토핫키] WinHTTP #5: 정리하기

WinHTTP에서 GET과 POST방식을 이용하여 웹 크롤링을 진행해보았습니다. 어렵고 복잡한 내용이 많아서 정리를 해보았습니다. 

 


Obj := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")

위와 같은 구문을 통해, WinHTTP를 사용할 수 있습니다.

WinHTTP라는 분류 안에 WinHTTPRequest라는 "함수 목록"이 있는데, 해당 함수 목록을 가져와 Obj변수에 담습니다.

이 Obj 변수를 "COM 객체"라고 합니다.

 

Obj.Open("GET", "URL")
Obj.Open("POST", "URL")

위와 같이. 객체 뒤에 점(.)을 찍고 함수명를 호출하여 "객체 안의 함수"를 호출할 수 있습니다.

COM 객체에 있는 Open() 함수는 "통신 방식"과 "대상 URL"을 적어줍니다.

 

GET은 값을 받아오는 것이며, POST는 값을 보내는 방식입니다.

 

Obj.SetRequestHeader("헤더명", "헤더값")

POST의 경우, 값을 받는 서버에게 본인의 신원을 알려주기 때문에 정상 접근을 위해선 써주는 것이 좋습니다.

사이트마다 검증 방식이 다르기 때문에, 필요한 헤더를 골라 써주시면 됩니다.

 

Obj.Send("보낼 값")

Open()함수로 준비했두었던 URL에 값을 보냅니다. GET 방식일 경우엔 비워두면 됩니다.

 

Obj.ResponseText()

결과값이 반환됩니다. 반환된 값이 곧 해당 웹사이트의 소스코드입니다.


이제 가져온 웹 소스코드를 파싱 작업을 통해 필요한 부분만 가져오면 됩니다.

파싱 작업은 자유롭게 하시면 되나, "정규식"을 이용하실거면 아래 링크에 정규식 강좌를 적어둔 것이 있습니다.

https://pnal.kr/pages/regex1

 

WinHTTP는 어떻게 하냐고 들어오는 질문이 너무 많아서, 그냥 써버린 강좌입니다. 피들러 사용법까지 조금이나마 알려드려서 그런진 몰라도, 피로도가 상당한 내용이네요. 요즘 느끼는건데, 저는 어려운 걸 쉽게 설명하는 능력이 부족한 것 같습니다. 하긴, 그게 됐으면 컴퓨터 학원을 차리지 않았을까요.

 

강좌에 대한 질문은 질문하기 란에서 받고 있습니다.(PC의 경우 우측 하단 버튼, 모바일인 경우 메뉴의 '질문하기').

 

저도 사람인지라 틀린 내용이 있을 수 있고요, 여러분들도 마찬가지로 이해가 안되는 부분도 분명 있을거고요.

 

그래도 몇 번 사용하시다 보면 감이 잡히실겁니다. 강좌 안봐도 스크립트를 술술 짤 수 있으면 그걸로 된거겠지요.

저는 제 사이트 관리를 위해 크롤링을 이용하곤 합니다. 생각보다 쓸 일이 종종 있어서, 알아두시면 분명 유용하실겁니다.