2016-04-09 12 views
1

Ich habe Probleme beim Parsen von HTML-Dateien. Die Sache ist, dass all die Beispiele, die ich gesehen habe, für einen Anfänger so kompliziert sind und ich sie überhaupt nicht verstehe. Ich habe GetNestedTag Handbuch gelesen, aber es scheint, dass es einen besseren Weg gibt: HTML Dom verwenden.Wie HTML in AutoHotKey analysieren?

Ich habe viele Tags (nicht sicher, ob dies das richtige Wort ist) wie:

</span> 3272</p>

<h1 class="articleTitle">Title of text</h1>

Wie erhalte ich den Text: "3272" im ersten Fall und " Titel des Textes "im zweiten Fall?

Ich habe bisher versucht:

htmlCode = <h1 class="articleTitle">Title of text</h1> 

html := ComObjCreate("HTMLFile") 
html.write(htmlCode) 

MsgBox % html.getElementsByClassName("articleTitle")[0].innerText\ 

Und ich habe auch versucht:

IE := ComObjCreate("InternetExplorer.Application") 
IE.Visible := true 

IE.Navigate("http://archiwum.rp.pl/artykul/473989-Miller-rezygnuje-z-kierowania-SLD.html#.VwkZz_mLTcs" PostCode) 

    while IE.readyState!=4 || IE.document.readyState != "complete" || IE.busy 
     continue 

    Sleep 1000 

Title_element := Name_Elements[A_Index-1].parentElement.getElementsByClassName("articleTitle")[0] 
Title_text  := Title_element.innertext 

msgbox, % title_text 


ExitApp 

In jedem Fall MsgBox nicht den richtigen Wert zu zeigen.

Antwort

0

Sie müssen auf Dom auffrischen, um Websites mit COM ordnungsgemäß zu navigieren und zu analysieren.

ich diesen Thread hier würde vorschlagen: Basic Webpage Controls with JavaScript/COM - Tutorial

IE := ComObjCreate("InternetExplorer.Application") 
IE.Visible := true 

IE.Navigate("http://archiwum.rp.pl/artykul/473989-Miller-rezygnuje-z-kierowania-SLD.html#.VwkZz_mLTcs" PostCode) 

    while IE.readyState!=4 || IE.document.readyState != "complete" || IE.busy 
     continue 

    Sleep 1000 

Title_text := IE.document.getElementsByClassName("articleTitle")[0].innertext 

MsgBox % Title_text