PGping 61e952c381e949abb7f34bb4434d0569
이번글은 강좌글이 아니라
파싱에 도움을 줄 함수입니다.
함수를 알려드리기 전에 '파싱에 대하여(1)' 에서는
아래와 같은 방식으로 사이트의 html 값을 가져왔습니다.
매번 적으면 귀찮으니 미리 함수 형식으로 만들어서 필요할때마나 호출해서 사용하는겁니다.
winHttp := ComObjCreate("WinHttp.WinHttpRequest.5.1")
winHttp.Open("GET","https://www.naver.com") ;
winHttp.Send("")
winHttp.WaitForResponse( ) ;
Data:= winHttp.ResponseText
아래는 함수입니다.
Data:=ReadURL("https://www.naver.com")
;변수:=ReadURL("사이트 주소")
;위와 같은 방법으로 사용할 수 있습니다.
ReadURL(URL, encoding = "utf-8") {
static a := "AutoHotkey/" A_AhkVersion
if (!DllCall("LoadLibrary", "str", "wininet") || !(h := DllCall("wininet\InternetOpen", "str", a, "uint", 1, "ptr", 0, "ptr", 0, "uint", 0, "ptr")))
return 0
c := s := 0, o := ""
if (f := DllCall("wininet\InternetOpenUrl", "ptr", h, "str", url, "ptr", 0, "uint", 0, "uint", 0x80003000, "ptr", 0, "ptr"))
{
while (DllCall("wininet\InternetQueryDataAvailable", "ptr", f, "uint*", s, "uint", 0, "ptr", 0) && s > 0)
{
VarSetCapacity(b, s, 0)
DllCall("wininet\InternetReadFile", "ptr", f, "ptr", &b, "uint", s, "uint*", r)
o .= StrGet(&b, r >> (encoding = "utf-16" || encoding = "cp1200"), encoding)
}
DllCall("wininet\InternetCloseHandle", "ptr", f)
}
DllCall("wininet\InternetCloseHandle", "ptr", h)
return o
}
DDang_
2020.01.17추천입니다