1
去年,我使用瞭解析一個節日頁面的HTML(併爲我的Windows Phone應用程序生成XML)的powershell(v3)腳本。HTMLDocumentClass和getElementsByClassName不起作用
我也是asking a question關於它在這裏,它的工作就像一個魅力。
但是,當我今年運行腳本,它不工作。具體 - 方法getElemntsByClassName不返回任何東西。我也在其他網頁上嘗試過這種方法,但沒有運氣。
這是從去年開始我的代碼,這不是現在的工作:
$tmpFile_bandInfo = "C:\band.txt"
Write-Host "Stahuji kapelu $($kap.Nazev) ..." -NoNewline
Invoke-WebRequest http://www.colours.cz/ucinkujici/the-asteroids-galaxy-tour/ -OutFile $tmpFile_bandInfo
$content = gc $tmpFile_bandInfo -Encoding utf8 -raw
$ParsedHtml = New-Object -com "HTMLFILE"
$ParsedHtml.IHTMLDocument2_write($content)
$ParsedHtml.Close()
$bodyK = $ParsedHtml.body
$bodyK.getElementsByClassName("body four column page") # this returns NULL
$page = $page.item(0)
$aside = $page.getElementsByTagName("aside").item(0)
$img = $aside.getElementsByTagName("img").item(0)
$imgPath = $img.src
這是我用來解決此代碼:
$sec = $bodyK.getElementsByTagName("section") | ? ClassName -eq "body four column page"
# but now I have no innerHTML, only the lonely tag SECTION
# so I am walking through siblings
$img = $sec.nextSibling.nextSibling.nextSibling.getElementsByTagName("img").item(0)
$imgPath = $img.src
這個工作,但是這似乎愚蠢的解決方案我。
任何人都知道我在做什麼錯?
我會認爲這是一個錯誤。 –
您安裝了哪個版本的Internet Explorer? Inovoke-WebRequest使用IE引擎來解析HTML,直到第9版纔在IE中支持「getElementsByClassName」。 –
我在Windows 8上安裝了IE10。 – jumbo