2017-11-14 14 views
0

公開図鑑のURLの最初の50件を取得したいと考えています。デフォルトで表示されている最初の12の投稿を取得するのは簡単ですし、コードの下にはうまくやっていますが、下部に「もっと読み込み」ボタンを押してさらに下にスクロールすると表示される他のURLにアクセスする方法がわかりませんもっと。これは可能ですか?誰もこれで私を助けることができますか?最初の取得方法50図書館からの投稿URL

Sub getData() 

Dim urL As String, instaID As String, totalPost As Long, fRow As Long 
Dim ie, var1, var2, a 

urL = "https://www.instagram.com/nike/" 
OUT.Range("A2:A" & OUT.Rows.Count).Clear 

Set ie = CreateObject("internetexplorer.application") 
ie.Visible = True 

fRow = 2 

'---------------------- 
With OUT 

    ie.navigate urL 

    'Busy 
    Do While ie.Busy 
     Application.Wait DateAdd("s", 1, Now) 
    Loop 

    Set var1 = ie.document.getElementsByclassname("_mck9w _gvoze _f2mse") 
    Do While IsObject(var1) = False 
     Application.Wait Now + TimeValue("00:00:03") 
     Set var1 = ie.document.getElementsByclassname("_mck9w _gvoze _f2mse") 
    Loop 

    Set var2 = var1(0).document.getElementsBytagname("a") 

    For Each a In var2 
     If Trim(a.href) <> "" And a.parentelement.classname = "_mck9w _gvoze _f2mse" Then 

      .Range("A" & fRow) = a.href 
      Debug.Print a.innertext & " " & a.parentelement.classname 

      fRow = fRow + 1 
     End If 
    Next a 


End With 

'------------------ 
ie.Quit 
Set ie = Nothing 

Application.ScreenUpdating = True 

End Sub 

答えて

1

アメージングこの

Sub getData() 

    Dim urL As String, instaID As String, totalPost As Long, fRow As Long 
    Dim ie As Object, var1 As Object, a As Variant 

    urL = "https://www.instagram.com/nike/" 

    Set ie = CreateObject("internetexplorer.application") 
    ie.Visible = True 

    ie.navigate urL 

    Do While ie.Busy Or ie.readystate <> 4 
     DoEvents 
    Loop 

    Do 
     Set var1 = ie.Document.getElementsByclassname("_1cr2e _epyes") ' wait for "load more" 
    Loop While var1 Is Nothing 

    var1(0).Click              ' click "load more" 

    Do While ie.Busy Or ie.readystate <> 4        ' not sure if this is needed 
     DoEvents 
    Loop 

    For a = 1 To 4 
     ie.Document.parentWindow.scrollBy 0, 60000      ' roll to bottom 
     Application.Wait Now + TimeValue("00:00:01")     ' wait for "fill in" 
    Next a 

    Set var1 = ie.Document.getElementsBytagname("a") 

    Range("A2:A" & Rows.count).Clear 
    fRow = 2 

    For Each a In var1 
     If Trim(a.href) <> "" And a.parentelement.classname = "_mck9w _gvoze _f2mse" Then 
      Range("A" & fRow) = a.href 
      Debug.Print a.innertext & " " & a.parentelement.classname 
      fRow = fRow + 1 
     End If 
    Next a 

    ' ------------------ 
    ie.Quit 
    Set ie = Nothing 

End Sub 
+0

を試してみてください。ちょうど私が必要なもの: – Rohan

+0

"fill in"ループを80のようなものに変更してすべての写真を取得する – jsotola

関連する問題