2017-07-05 12 views
0

新しいインターンシップでオンラインソースからの情報の取得を自動化しようとしています。私は、パスワードで保護されたサイトを開き、必要なページにアクセスするために2つの追加ページをナビゲートするコードを作成しました。ただし、このページには、抽出に問題があるという情報が一覧表示されています。情報は、HTMLによってアクセスされるjavascriptファイル内に格納されているようです。この情報を入手してExcelワークシートに入れる方法はありますか?JS配列からhtmlファイルのデータをVBAに抽出する方法

これまでのコードです...残念ながら、私の会社が許可するかどうかわからないので、私はURLを表示できません。

  Sub AutomateIE() 

      Dim URL As String 
      Dim URL2 As String 
      Dim IE As Object 
      Dim objPage As Object 

      Set IE = CreateObject("InternetExplorer.Application") 
      IE.Visible = True 

      URL = "URL" 
      URL2 = "URL2" 
      URL3 = "URL3" 
      IE.navigate URL 
      Do While IE.ReadyState < 4: 
      DoEvents: Loop 
      Do Until IE.ReadyState = 4: 
      DoEvents: Loop 

      Set objPage = IE.document 
      objPage.getelementbyid("ucLogin_txtLogonID").Value = "Employee name" 
      objPage.getelementbyid("ucLogin_txtLogonPassword").Value = "Employee password" 
      Application.SendKeys "{Return}", True ' 
      Application.Wait (Now + TimeValue("0:00:05")) 
      IE.navigate URL2 
      Application.Wait (Now + TimeValue("0:00:05")) 
      IE.navigate URL3 

      End Sub 
+1

「の情報を:

var arr = ["hello", "world"];

その後のScriptControlオブジェクトにスクリプトをロードし、それを評価するのは、あなたが "世界"

をしたいとしましょうHTMLによってアクセスされているjavascriptファイルの中に保存されているようです。「...これはよい質問であるためには少し詳しい説明が必要です。ログインしてから 'WinHttp.WinHttpRequest'を使ってファイルをダウンロードすることは可能です。また、IT管理者に相談して、データ検索を自動化する正しい方向に向けることができるかどうかを確認してください。あなたは情報を持っていますか?それはデータベースにありますか?もしそうなら、これは簡単なはずです。これがあなたが所有するウェブページでない場合は、APIを使用して調べる必要があります。これには費用がかかりますが、単純なURLでもかまいません –

答えて

0

スクリプトファイルで定義された静的な値の場合、XMLHTTP60を使用してスクリプトファイルのresponseTextを取得できます。など

Dim script As IHTMLScriptElement 
Set script = doc.getElementById("myScript") 'may need another way to identify 

Dim sControl As ScriptControl 'needs reference to Miscrosoft Script Control 1.0 
Set sControl = New ScriptControl 
sControl.Language = "JScript" 

Dim xhr As MSXML2.XMLHTTP60 
Set xhr = New MSXML2.XMLHTTP60 
With xhr 
    .Open "GET", URL3.Path & "/" & script.src, False 'define full path to script file properly 
    'if necessary change above path to full script src URL 
    .send 
    Dim jsText As String 
    jsText = .responseText 
End With 
sControl.AddCode jsText 'adds the contents of the script file to ScriptControl object 

Dim v As Variant 
v = sControl.Eval("arr[1]") 

MsgBox v 
関連する問題