2014-01-29 1 views
3

Я пытаюсь создать сценарий VB для перехода на сайт, SelectAll, скопировать и затем сохранить скопированные данные из буфера обмена в текстовый файл, но я «Застрял! :(Перейдите на сайт, выберите все, скопируйте и вставьте в блокнот

Вот что я получил до сих пор:

With CreateObject("InternetExplorer.Application") 
    .Navigate "https://www.microsoft.com" 
    Do Until .ReadyState = 4: Wscript.Sleep 100: Loop 
    .Visible = true 
    With .Document 
     .execCommand "SelectAll" 
     .execCommand "Copy" 
    End With ' Document 
+0

[Это] (http://stackoverflow.com/questions/11780366/vb-script-or-vba-code-to-copy-the-content-of-a-web-webpage-to-a-word-excel-shee) может помочь. –

+0

Проблема в том, что веб-страница Я хочу собирать данные, используя JavaScript для визуализации данных, поэтому загрузка исходного кода страницы не будет работать, поскольку она не содержит этих данных. Вот почему я собирался создать копию Select-All a nd paste – Zulake

+1

VBScript не является подходящим инструментом для такого рода автоматизации. Вместо этого используйте что-то вроде [AutoIt] (http://www.autoitscript.com/site/autoit/). –

ответ

3

Вы можете попытаться получить текстовые данные непосредственно из DOM

With CreateObject("InternetExplorer.Application") 
    .Visible = True 
    .Navigate "https://www.microsoft.com" 
    Do Until .ReadyState = 4 
     Wscript.Sleep 100 
    Loop 
    For Each Tag In .Document.GetElementsByTagName("script") 
     Tag.OuterHtml = "" 
    Next 
    For Each Tag In .Document.GetElementsByTagName("noscript") 
     Tag.OuterHtml = "" 
    Next 
    Content = .Document.GetElementsByTagName("body")(0).InnerText 
    Do While InStr(Content, vbCrLf & vbCrLf) 
     Content = Replace(Content, vbCrLf & vbCrLf, vbCrLf) 
    Loop 
    ShowInNotepad Content 
    .Quit 
End With 

Sub ShowInNotepad(Content) 
    With CreateObject("Scripting.FileSystemObject") 
     TempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%") & "\" & .GetTempName 
     With .CreateTextFile(TempPath, True, True) 
      .WriteLine (Content) 
      .Close 
     End With 
     CreateObject("WScript.Shell").Run "notepad.exe " & TempPath, 1, True 
     .DeleteFile (TempPath) 
    End With 
End Sub