-
오토핫키 연습일지 #2 ] 웹 간편 크롤링오토핫키/연습일지 2022. 6. 18. 06:23
https://open.kakao.com/me/apsalman
https://www.youtube.com/channel/UC6hW-NrL9CxDQd2IzWbekYA
연습 #2
오토핫키를 이용해서 크롤링을 하는 방법은 정말 여러가지가 있다.
그 중에서 오토핫키 내장으로 지원하는 명령어 URLDownloadToFile 이 있고
ComObj인 WinHTTP
배포 라이브러리인 ReadURL.ahk 등이 있다.
이 3개는 간단하면서도 쉽게 사이트의 html 를 긁어올 수 있다.
내가 왜 이걸 3개나 알고있냐고?
...
하루는 네이버카페 게시글 타이틀들만 따오고 싶었고
이 주소에 있는
이 타이틀들을 가져올 생각이었다.
근데 예상치도 못한 문제가 있었다. 평소에 내가 좋아하는 WinHTTP 로 불러오니
대상 멀티바이트 코드페이지에 유니코드 문자의 매핑이 없습니다. 라는 오류가 떴다.
이게 ㅅㅂ 뭔 소리지... 하고 찾아봐도 정보가 별로 없었는데
방장님이 바로 알려주셨다. (역시 갓갓갓)
URL:="url 입력" MsgBox % c:=Decode_EUCKR(URL) ExitApp ReadURL(URL){ (a:=ComObjCreate("WinHttp.WinHttpRequest.5.1")).Open("GET",URL,true) a.Send() a.WaitForResponse return a.responseBody } Decode_EUCKR(URL){ (a:=ComObjCreate("ADODB.Stream")).Charset:="euc-kr" a.Type():=1 a.Open a.Write(ReadURL(URL)) a.Position:=0 a.Type:=2 b:=a.ReadText a.Close return b }
게다가 WinHTTP 로 바로 디코딩해서 크롤링할 수 있게 함수까지 만들어주셨다... 그는 신인가?
아 아무튼 그래서 위에 소스를 받기 전에 네이버 크롤링을 하기 위해 다른 뻘짓?을 하고있었는데 그 과정에서
URLDownloadToFile
ReadURL.ahk
까지 같이 알게된 것이다.
그리고 매번 테스트 할 때마다 사이트주소 박고 오브젝트 연결하고 스크립트 입력하는게 귀찮아서 아예 프로그램으로 만들었다.
사이트 주소를 입력하고 크롤링 방식 선택하고 검색하면 결과를 Edit 에 출력해준다.
복사는 밑에 내용을 클립보드로 담아주고
검색은 엑셀에서 사용하는
이걸 구현하고 싶은데 찾은 후에 문자열로 이동하는 방법을 모르겠어서 못했다 ㅠ
문자열 Line 과 Column 은 찾을 수 있는데 그 위치로 어떻게 이동하지...
바꾸기도 마찬가지로 StringReplace 나 StrReplace() 로 하려고 했는데
다른 것들은 잘만 되는데
얘는 와... 와이라노...안되냐 왜 ㅠ
-----------6월 20일 추가-----------
ReadURL(URL, "cp51949")
이거로 인코딩을 바꿔주니 되네요
싸랑합니다!
-----------11월 9일 추가-----------
https://apsalman.tistory.com/80
거의 완성된 프로그램을 배포합니다!
'오토핫키 > 연습일지' 카테고리의 다른 글
오토핫키 연습일지 #6] Winhttp 활용 뉴스기사 크롤링하여 타이틀, 기사 내용 따오기 (0) 2022.07.30 오토핫키 연습일지 #5] 다음카페 최신글 크롤링 (1) 2022.07.23 오토핫키 연습일지 #4] 카카오톡 파일 전송 (0) 2022.07.02 오토핫키 연습일지 #3] 네이버 카페 크롤링 후 게시글 타이틀 파싱 (1) 2022.06.21 오토핫키 연습일지 #1 ] WinHttp 웹 크롤링 + 정규식 연습 (2) 2022.06.14