使用vbscript获取包含javascript的Web内容

使用vbscript获取包含javascript的Web内容,javascript,url,vbscript,Javascript,Url,Vbscript,在我的vbscript中使用以下代码 Dim o Set o = CreateObject("MSXML2.XMLHTTP") o.open "GET", "http://somesight.com/blah?234", False o.send Wscript.Echo o.responseText 我正试图从网站内外写出数据。但我想要的大多数数据都是通过中的javascript函数创建的,并且无法通过这种方式访问,因为当我运行此脚本时,它会说: 必须启用JavaScript。 有没有一种

在我的vbscript中使用以下代码

Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", "http://somesight.com/blah?234", False
o.send

Wscript.Echo o.responseText
我正试图从网站内外写出数据。但我想要的大多数数据都是通过中的javascript函数创建的,并且无法通过这种方式访问,因为当我运行此脚本时,它会说:

必须启用JavaScript。 有没有一种方法可以模拟在vbscript中使用Javascript,或者在启用Javascript的情况下翻译o.responseText

提前非常感谢

请尝试以下代码:

Option Explicit
Const TriStateTrue = -1 ' Pour la prise en charge de l'Unicode
Dim URL,ie,Titre,objFSO,ws,strFileHTML,strFileTxt,strFileHTMLAscii
Dim objHTMLFile,objTxtFile,strFileTxtAscii,DataHTML,DataTxt
URL = InputBox("Entrez l'URL pour y extraire son Code Source HTML "&vbcr&vbcr&_
"Exemple ""http://www.google.fr""","Extraction du Code Source © Hackoo © 2014",_
"http://stackoverflow.com/questions/25193018/getting-web-content-that-has-javascript-using-vbscript")
If URL = "" Then WScript.Quit
Titre = "Extraction du Code Source de " & URL
Set ie = CreateObject("InternetExplorer.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")
strFileHTML = "CodeSourceHTML.txt"
strFileTxt = "CodeSourceTxt.txt"
strFileHTMLAscii = "SourceCodeHTML.txt"
strFileTxtAscii = "SourceCodeTxt.txt"
ie.Navigate(URL)
ie.Visible=false
DO WHILE ie.busy
    wscript.sleep 100
LOOP
'***********************To Get Data in HTML mode****************************
DataHTML = ie.document.documentElement.innerHTML
DataTxt = ie.document.documentElement.innerText
Set objHTMLFile = objFSO.OpenTextFile(strFileHTML, 2, True, TriStateTrue)
objHTMLFile.WriteLine(Titre&vbcr&String(120,"*"))
objHTMLFile.WriteLine(DataHTML)
objHTMLFile.Close
'************************To Get Data in Texte mode**************************
Set objTxtFile = objFSO.OpenTextFile(strFileTxt, 2, True, TriStateTrue)
objTxtFile.WriteLine(Titre&vbcr&String(120,"*"))
objTxtFile.WriteLine(DataTxt)
objTxtFile.Close
ie.Quit
Set ie=Nothing
Call Convert(strFileTxt,strFileTxtAscii)
objfso.DeleteFile strFileTxt
Call Ouvrir(strFileTxtAscii)
Call Convert(strFileHTML,strFileHTMLAscii)
objfso.DeleteFile strFileHTML
Call Ouvrir(strFileHTMLAscii)
wscript.Quit
'*************************************************************************
Function Ouvrir(File)
    Dim ws
    Set ws=CreateObject("wscript.shell")
    ws.run "Notepad.exe "& File,1,True
end Function
'*************************************************************************
Sub Convert(UnicodeFile,AsciiFile)
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Const ModeAscii = 0, ModeUnicode = -1
    Dim fso, f_in, f_out
    Set fso = CreateObject("Scripting.FileSystemObject" )
    Set f_in = fso.OpenTextFile(UnicodeFile, ForReading,, ModeUnicode)
    Set f_out = fso.OpenTextFile(AsciiFile, ForWriting, true, ModeAscii)
    Do Until f_in.AtEndOfStream
        f_out.Write f_in.Read(1)
    Loop
    f_in.Close
    f_out.Close
End Sub
'*************************************************************************

你的意思是获取任何网页的源代码吗?@Hackoo:基本上,但是在页面上的javascript函数运行之后。javascript调用从服务器检索数据并显示它。显示的数据就是我想要得到的。这有什么意义吗?如果我有浏览器,我可以得到数据。也许我需要以不同的方式来处理这个问题,但我喜欢获取这些数据并将其放在数据表中。另外,我可以输入不同的值,所以我需要一个程序化的解决方案。这看起来很有希望。今晚我会试试,然后告诉你。ThanksI按原样尝试了上面的脚本,它接近于我想要的,但是出于某种原因,代码中javascript函数的数据没有被调用。也许需要暂停或等待页面上的任何函数完成?实际上,使用:DO WHILE ie.busy wscript.sleep 100循环,它应该等待足够长的时间。。我想知道为什么这些函数没有带回数据。现在我正在研究Snoopy和GreaseMonkey,看看两者是否都有效。你有这些方面的经验吗?