去年,我有一个 powershell (v3) 脚本来解析一个节日页面的 HTML(并为我的 Windows Phone 应用程序生成 XML)。
我也在这里问了一个关于它的问题,它就像一个魅力。
但是当我今年运行脚本时,它不起作用。具体来说,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
这行得通,但这对我来说似乎是愚蠢的解决方案。
任何人都知道我做错了什么?