2017-02-16 4 views
-1

Я настраиваю простой сценарий для прокрутки ячеек в массиве, копирования/вставки каждого в конец URL-адреса и импорта данных из каждого URL в каждом листе. Он создает новые листы.Как перейти к нескольким URL-адресам, перейти к определенным ссылкам и извлечь данные из каждого

Это в основном, как это ...

Set rng = Sheets("IDs").Range("A2:A4") 
For Each cell In rng 

' DO STUFF HERE 

Next cell 

Мой вопрос заключается в следующем. Как я могу заставить скрипт выглядеть в каждом href и извлекать данные? Каждый href имеет строку 'Upload *' в имени. Таким образом, я даже не знаю, возможно ли это, но я хотел бы, чтобы мой сценарий развернулся по каждой ссылке с помощью «Загрузить» (и подстановочный знак), скопируйте/вставьте данные в Рабочий лист, вернитесь к исходному URL-адресу, найдите другую ссылку с 'Upload *' и т. д. и т. д. Конечно, это будет рекурсивный сценарий. Возможно ли это, или это просто пустая трата времени?

Я предполагаю, что это будет выглядеть примерно так, но приведенный ниже код не работает для меня.

strSQL = "https://la_de_da_de_da_CampaignID=" & cell.Value 

Set IE = CreateObject("InternetExplorer.Application") 
With IE 
    .Visible = True 
    .Navigate strSQL 
    Do Until .ReadyState = 4: DoEvents: Loop 
     Set doc = IE.Document 

     For Each l In doc.getElementsByTagName("a") 
      If l.ClassName Like "Upload*" Then 
      l.Click 
      End If 
     Next l 

End With 

Next cell 

Я получаю сообщение об ошибке, которое гласит: «Ошибка выполнения 13 Тип Рассогласование»

Эта линия бросает ошибку:

For Each l In doc.getElementsByTagName("a") 
+0

http://stackoverflow.com/questions/27066963/scraping-data-from-website-using-vba –

ответ

0

Я получил его работать с этим.

strSQL = "https://la_de_da_de_da_CampaignID=" & cell.Value 

Set IE = CreateObject("InternetExplorer.Application") 
With IE 
    .Visible = True 
    .Navigate strSQL 
    Do Until .ReadyState = 4: DoEvents: Loop 

     Set ElementCol = IE.Document.getElementsByTagName("a") 

     For Each link In ElementCol 
     Debug.Print link.innerHTML 
      If link.innerHTML Like "Upload*" Then 
       link.Click 
       Exit For 
      End If 
     Next link 

End With 

 Смежные вопросы

  • Нет связанных вопросов^_^