AHK에서 유용한 HTML 태그는 DIV 일치 함수에 해당합니다.
1654 단어 AHK
GetNestedTag(data,tag,occurrence="1")
{
Start:=InStr(data,tag,false,1,occurrence)
RegExMatch(tag,"i)<([a-z]*)",basetag) ; get yer basetag1 here
Loop
{
Until:=InStr(data, "</" basetag1 ">", false, Start, A_Index) + StrLen("</" basetag1 ">")
Strng:=SubStr(data, Start, Until - Start)
StringReplace, strng, strng, <%basetag1%%A_Space%, <%basetag1%%A_Space%, UseErrorLevel ; start counting to make match
OpenCount:=ErrorLevel
StringReplace, strng, strng, </%basetag1%>, </%basetag1%>, UseErrorLevel
CloseCount:=ErrorLevel
If (OpenCount = CloseCount)
Break
If (A_Index > 250) ; for safety so it won't get stuck in an endless loop,
{ ; it is unlikely to have over 250 nested tags
strng=
Break
}
}
If (StrLen(strng) < StrLen(tag)) ; something went wrong/can't find it
strng=
Return strng
} GetHTMLbyTag(HTMLSource, Tag, Occurrence=1, Format=0) {
;Format 0:Text 1:HTML 2:DOM
ComError := ComObjError(false), `(oHTML := ComObjCreate("HtmlFile")).write(HTMLSource)
if (Format = 2) {
if (innerHTML := oHTML.getElementsByTagName(Tag)[Occurrence-1]["innerHTML"]) {
`(oDOM := ComObjCreate("HtmlFile")).write(innerHTML)
Return oDOM, ComObjError(ComError)
} else
Return "", ComObjError(ComError)
}
return (result := oHTML.getElementsByTagName(Tag)[Occurrence-1][(Format ? "innerHTML" : "innerText")]) ? result : "", ComObjError(ComError)
}