Здравствуйте, есть 5 веб запросов, как загружать одну ячейку из каждого веб запроса A155, все остальное не нужно Упростить веб запрос и занести его в один лист, не загружать лишнего по веб запросу, а лишь статистику просмотра или по вашему усмотрению сделать это другим способом Главный результат на листе в таблице на примере
2.3. Приложите файл(ы) с примером (общим весом не более 100 Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.
Да, здорово, помесились в 100 кБ. Но зачем столько данных в листах запросов? Чем больше лишней информации, тем меньше помогающих. И, наоборот, простой пример увеличивает шансы на помомощь. Вам об этом еще не говорили?
next777pro написал: загружать одну ячейку из каждого веб запроса A155, все остальное не нужно
ОДНУ ячейку! А в файле на листах по 800 строк. Неужели для примера мало 10-ти строк? Неужели Вы не в состоянии изменить под себя то, что покажут в примере с 10-ю строками?
vikttur, вот читаю везде, все перелазил, пока не нашел, и самое интересное в веб запросе нет каких либо таблиц, чтобы отдельно захватить и не загружать всю страницу
То ли я непонимаю, о чем речь, то ли Вы меня не поймете. Я не о запросе толкую, а о примере, который Вы показываете форуму.
Есть web-запрос... На самом деле в примере не запрос, а данные, получаемые по запросу. Неужели нельзя ДЛЯ ПРИМЕРА записать на лист несколько строк из запроса и указать, что именно искать: всегда строку №5 (в примере у нас ведь только 10 строк, не 800) или данные конкретного типа, которые находятся в этой строке 5? А когда получите решение, не составит труда изменить так, чтобы поиск был не в 5, а в 155 строке
vikttur, надо получить из веб запросов в 5 листах одну ячейку с каждой A155 и очистить от текста, формулой я уже сделал в примере, то есть результат уже у меня есть, метод работы упростить может получиться, а то слишком сложным он у меня вышел, я могу загнать запросы в один лист, но хотелось. чтобы запросы не загружали столько данных а лишь часть из них где есть нужные для ввода в таблицу, для этого я дал ссылку чтобы можно посмотреть на сайте где эти данные находятся вытянуть 42 598 551 просмотров, A155 лист запрос1 + ссылка прилагается на сайт =//= 1 536 987 просмотров, A155 лист запрос2 + ссылка =//= =//= 1 442 508 просмотров, A155 лист запрос3 + ссылка =//= =//= 223 936 просмотров, A155 лист запрос4 + ссылка =//= =//= 339 047 просмотров, A155 лист запрос5 + ссылка =//=
Упростить работу запросов, макросом, чтобы не загружать все и вышло как в таблице
Пример текста не нужен.Надо обрабатывать html страницы. Могу помочь функцией для извлечения показов.Как скачать текст страницы полно примеров в сети.
Код
Function youtube(S)
S = Replace(S, Chr(160), " ")
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.IgnoreCase = True
RegExp.Pattern = "<ul class=""pl\-header\-details"">(.+?)<li>([0-9\s]+)пр"
If RegExp.test(S) Then
youtube = Replace(RegExp.Execute(S)(0).SubMatches(1), " ", "")
End If
End Function
Вы собираете данные с вебстраниц,тогда изучайте регулярки и разметку html.
Код
RegExp.Pattern = "<ul class=""pl\-header\-details"">(.+?)<li>(.+?)</li><li>([0-9\s]+)пр"
If RegExp.test(S) Then
видео= RegExp.Execute(S)(0).SubMatches(1)
показы= Replace(RegExp.Execute(S)(0).SubMatches(2), " ", "")
End If
есть один пример показ просмотров видео, на таком примере бы собрать
Код
Function YOUTUBEVIEW(ByVal URL As String) As Long
Dim t$, v$
'---------------
With CreateObject("msxml2.xmlhttp")
.Open "GET", URL, False
.send
Do: DoEvents: Loop Until .ReadyState = 4
t = .responsetext
End With
With CreateObject("htmlFile")
.Body.innerHTML = t
For Each tg In .GetElementsByTagName("div")
If tg.className = "watch-view-count" Then
v = tg.innertext
Exit For
End If
Next
End With
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "\D+"
YOUTUBEVIEW = .Replace(v, "")
End With
End Function
p.s. 3 основные замечания, которые помогут вам более детально понимать происходящее в коде: 1. Точки останова и клавиша F8 2. Local и Immediate windows 3. google.com/yandex.ru
Для статистики количества видео у меня тоже получилось сегодня ) =Yout_video("url")
Код
Function Yout_video(url As String) As Long
With CreateObject("MSXML2.XMLHTTP")
.Open "POST", url, False
.Send
Yout_video = youtubefiles(.responseText)
End With
End Function
Function youtubefiles(S As String)
Dim RegExp As Object
S = Replace(S, Chr(160), " ")
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.IgnoreCase = True
RegExp.Pattern = "<ul class=""pl\-header\-details"">(.+?)<li>([0-9\s]+)ви"
If RegExp.test(S) Then
youtubefiles = RegExp.Execute(S)(0).SubMatches(1)
End If
End Function
Function youtubestat(S As String)
Dim RegExp As Object
S = Replace(S, Chr(160), " ")
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.IgnoreCase = True
RegExp.Pattern = "<div class=""about-metadata-stats branded-page-box-padding"">(.+?)<div class=""about-stats"">(.+?)<span class=""about-stat""><b>([0-9\s]+)"
If RegExp.test(S) Then
'youtubestat = Replace(RegExp.Execute(S)(0).SubMatches(2), " ", "")
youtubestat = RegExp.Execute(S)(0).SubMatches(1)
End If
End Function
хочу получить3 760 758 в 2-й функции, тоже не получилось, что не так сделал?
Код
Function youtubepodp(S As String)
Dim RegExp As Object
S = Replace(S, Chr(160), " ")
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.IgnoreCase = True
RegExp.Pattern = "<div class=""about-metadata-stats branded-page-box-padding"">(.+?)<div class=""about-stats"">(.+?)<span class=""about-stat"">([0-9\s]+)ïî"
If RegExp.test(S) Then
'youtubepodp = Replace(RegExp.Execute(S)(0).SubMatches(2), " ", "")
youtubepodp = RegExp.Execute(S)(0).SubMatches(1)
End If
End Function