【问题标题】:Navigate to a Website, SelectAll, Copy and Paste into a Notepad导航到网站,全选,复制并粘贴到记事本中
【发布时间】:2014-01-29 16:57:01
【问题描述】:

我正在尝试创建一个 VB 脚本来导航到网站、全选、复制,然后将复制的数据从剪贴板保存到文本文件,但我卡住了! :(

这是我目前得到的:

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

【问题讨论】:

  • This 可能会有所帮助。
  • 问题是我要收集数据的网页使用JavaScript来呈现数据,因此下载页面的源代码将无法工作,因为它不包含该数据。这就是为什么我要进行全选复制和粘贴
  • VBScript 不是这种自动化的正确工具。请改用AutoIt 之类的东西。

标签: internet-explorer vbscript web-scraping wsh


【解决方案1】:

你可以尝试直接从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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    • 2013-02-13
    • 2019-02-25
    相关资源
    最近更新 更多