-
오토핫키와 Winhttp #5. Winhttp 와 Adodb Stream 으로 파일 다운로드 구현오토핫키/winhttp 2023. 7. 11. 09:04
압살맨 오픈채팅 바로가기
압살맨 유튜브 바로가기
시작
간만에 Winhttp 로 다시 돌아왔네요. 요즘 Excel 과 Winhttp 의 조합으로 미친 업무효율을 뽑아내고 있는데요.
그 안에서 제가 고생했던 부분이 있어서 열심히 찾다가 해결한 내용에 대해서 알려드리려고 합니다.
물론 이 글을 통해 제가 나중에 까먹더라도 다시 상기하기에 좋을 것 같아서 쓰는 것도 있습니다.
본문
먼저 파일을 다운로드 하기 위해서 인터넷 상에서 파일이 어떻게 공유되는지에 대해 대략적으로 알아보자.
파일이 있다. 이 파일은 하나의 인코딩 된 상태로 텍스트가 나열되어 있다.
이 나열된 텍스트를 우리는 전송받는다. 통신의 개념에서 완벽하게 같다. 단 인코딩 되어있다. 이 차이 뿐이다.
이것을 우리는 적절하게 변환을 하여 컴퓨터가 읽을 수 있도록 바꿔준 후에 파일로 저장을 하면 끝인 것이다.
"아니 그러면 그냥 UrlDownloadToFile 쓰지 왜 이거 씀?"
URLDownLoadtoFile 은 html 을 메모장에 저장하는 역할이라 우리가 원하는 모든 형식의 파일을 다운로드하는데에
적합하지 않을 뿐더러 헤더가 필요한 사이트에서는 당연히 작동하지 않는다.
wh := ComObjCreate("WinHttp.WinHttpRequest.5.1") wh.Open("Get", 다운로드 받을 링크) wh.SetRequestHeader("Cookie", 사이트에서 요구하는 쿠키값) wh.Send() oADODB := ComObjCreate("ADODB.Stream") oADODB.Type := 1 oADODB.Open() oADODB.Write(wh.ResponseBody) oADODB.SaveToFile(다운로드 시 경로와 파일 이름, 2) ;2는 덮어쓰기 oADODB.Close()
응답 바디를 가져와서 ADODB 로 읽고 파일로 저장하는 아주 간단한 스크립트 이다.
근데 이걸 못해서 못찾아서 한참을 헤맸다...
결론
엑셀 강좌에서 썼던 계획에서 원하는 부분만 추출하는 것 + 자동 다운로드까지 결합이 되니 메일을 아예 손대지 않아도 된다!
'오토핫키 > winhttp' 카테고리의 다른 글
오토핫키와 Winhttp #6. multipart/form-data (0) 2024.07.13 오토핫키와 Winhttp #4. 파라미터를 주소에 표시하지 않는 사이트 파싱하기 (0) 2023.02.22 오토핫키와 Winhttp #3. 원래 주소가 숨겨진 사이트를 파싱하는 방법 (0) 2023.02.16 오토핫키와 Winhttp #2. 파라미터가 주소에 입력되는 사이트 크롤링 (1) 2023.02.15 오토핫키와 Winhttp #1. winhttp 의 이해 (3) 2023.01.19