Найти в Дзене
Виктор Шугаров

VBScript: Работа с сайтом VK.com [Часть 05. Работа с массивом, оставляем строки только с нужным текстом].

Легко было сделать, а сложнее будет объяснить. Мы пришли на завершающий этап разработки, поговорим о "фильтрации" файла в итоговые три/четыре строки с: авторским описанием, картинкой и ссылкой на плейлист. Спойлер: Давайте это всё дело обработаем, создадим таблицу и откроем в браузере, не "любимом" сайтом vk.com - это будет MSIE. И ещё, для примера, запустим в проигрывателе VLC. На самом-то деле всё уже готово почти, но очень не просто будет объяснить, как мне показалось, но уж постараюсь. План действий такой: есть массив со строками, в которых надо найти какую-то последовательность символов и если совпадение есть, то эту строку забираем/запоминаем. Будем искать следующие последовательности символов в строке, пока делал этот пост, добавил ещё и четвёртую строку, а Вы можете тоже что-то добавить или убрать: Поэтому из этого решил создать массив, кавычку заменяем на h: А уже в цикле "For i = 0 To UBound(x) ..... Next" просто будем брать x(i) элемент в работу. У нас по итогам работы уже

Легко было сделать, а сложнее будет объяснить.

Мы пришли на завершающий этап разработки, поговорим о "фильтрации" файла в итоговые три/четыре строки с: авторским описанием, картинкой и ссылкой на плейлист.

  • На самом деле всё не так просто с обработкой, уже опубликовал следующую статью со скриптом, который немного "глубже" разбирает исходный текст страницы сайта и при этом находит дополнительные ссылки. (Смешно звучит: добавлен пятый элемент.) Забирайте, проверяйте. Удачи!
Спойлер:
Давайте это всё дело обработаем, создадим таблицу и откроем в браузере, не "любимом" сайтом vk.com - это будет MSIE. И ещё, для примера, запустим в проигрывателе VLC.

На самом-то деле всё уже готово почти, но очень не просто будет объяснить, как мне показалось, но уж постараюсь.

План действий такой: есть массив со строками, в которых надо найти какую-то последовательность символов и если совпадение есть, то эту строку забираем/запоминаем.

Будем искать следующие последовательности символов в строке, пока делал этот пост, добавил ещё и четвёртую строку, а Вы можете тоже что-то добавить или убрать:

  1. "desc":
  2. "jpg":
  3. "hls_raw":
  4. "playlist_id":

Поэтому из этого решил создать массив, кавычку заменяем на h:

  • x = Array(h&"desc"&h&":", h&"jpg"&h&":", h&"hls_raw"&h&":")
  • x = Array(h&"desc"&h&":",h&"jpg"&h&":",h&"hls_raw"&h&":","playlist_id"&h&":")

А уже в цикле "For i = 0 To UBound(x) ..... Next" просто будем брать x(i) элемент в работу.

У нас по итогам работы уже есть массив g, в котором надо выбрать строки. А это проще сделать перебором построчно так: "For Each j In g ........ Next". Буквально это звучит как "Пока строка это будет j из массива g ..... Продолжить со следующей строкой".

Пытался расшифровать как мог, простите уж, если что не так.

Помним при этом, что строка j начинается без кавычки, поэтому в коде пишем не просто j, а h&j

А вот что получилось, смотрите код:

x = Array(h&"desc"&h&":",h&"jpg"&h&":",h&"hls_raw"&h&":")
For Each j In g
For i = 0 To UBound(x)
If InStr(1,h&j,x(i),1) <> 0 Then
z = z&h&j&w
End If
Next
Next
CreateObject("Scripting.FileSystemObject").CreateTextFile(u&".txt",True).Write(z).Close

Результат записываем в файл, который смотрим.

Если забыть про кавычку в начале строки, то могут и появятся не нужные строки.

Ну результат есть, но что-то в нём не так. Давайте добавим замену "\/" на "/", а "<br>" на перевод строки, а "\n" на одинарную кавычку.

Хотя нет, вторую замену imho лучше выполнить на пробел.

Вот что получается:

  • z = Replace(Replace(Replace(z&h&j&w,"\/","/"),"<br>"," "),"\n","'")

Ну и всё, адрес плейлиста между одинарными кавычками, начинается с "http:" и заканчивается символом "?", уже можно пользоваться даже наверное.

Пока на этом остановимся, не будем торопиться дальше.

Удачи!