在VBScript中逐行阅读html

时间:2012-03-16 13:20:19

标签: html vbscript

我有一个脚本可以将html拉下来并将其放入文本或HTML文件中。然后我可以逐行解析文本文件,但我宁愿解析网站本身或解析文本流,因为我得到它。这可能是使用VBS(我的脚本语言有限)吗?

代码:

dim URL
url = "www.something.com"
set wshshell = wscript.createobject("wscript.shell")
set http = createObject("microsoft.xmlhttp")
on error resume next
http.open "GET", URL, FALSE
http.send
if err.number = 0 then 
    outputFile.writeline http.responsetext
else
    wscript.echo "error " & err.number & ": " & err.description
end if
set wshshell = nothing
set http = nothing

patchStatusFile.close

如果我写入外部HTML文件,它可以正常工作。我想知道我是否要写入文件或者我可以先解析流吗?即:

strToLookAt = http.responsetext

do until strToLookAt.atEndOfStream 
    strLine = strToLookAt.readLine 
    if strLine = "the thing I'm looking for" 
        ...do stuff... 
    end if 
loop

2 个答案:

答案 0 :(得分:1)

为什么没有人回答这么简单的问题?

这是我做的一个例子。

dim up_http : up_http = "http://www.metrolyrics.com/Cornography-lyrics-Brad-Paisley.html"
dim xmlhttp : set xmlhttp = createobject("MSXML2.XMLHTTP.6.0")
xmlhttp.open "get", up_http, True
xmlhttp.send
LyricsURL = xmlhttp.responseText
'At this point we have the html from the web page in memory variable LyricsURL

无需写入任何文件。 您可以只处理行的内存变量行。

在这种情况下(脚本未显示)我在一个函数(get_html)中有它。然后我处理函数结果的每一行,寻找标记歌词开头和结尾的特定字符串。然后我将该结果保存到变量中,然后我替换并删除此变量中的字符。

答案 1 :(得分:0)

从未得到答案。我决定做的是:

1)创建一个临时文件,我存储文本信息。 2)解析临时文件。 3)删除临时文件。

不是最好的主意,但说实话,这不是最好的剧本。刚刚意识到SCCM报告中有一个“导出”按钮。我将在脚本中看到如何使用它。