Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625

Можно ли получить json от сервера ВК в tampermonkey?

18.01.2021, 14:20. Показов 2344. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех!

Пишу скрипт на js. Работает он следующим образом:
При загрузке страницы альбома вк с видео, js считывает все ссылки и названия видео, которые в данный момент есть в определенном блоке выгруженном самим вк.
Далее скрипт сортирует все видео по определенным условиям и выводит в доп.-DIV отсортированный список видео, который в свою очередь выводится на экран
поверх всего вк в виде попапа. Все отлично работает НО! Если видео в альбоме много то в список выводятся не все видео а только те которые на данный момент
были загружены на страницу (что бы видео догрузились нужно прокрутить страницу до конца). Я сделал кнопку, при клике по которой происходит повторное
считывание всех видео со страницы и повторный (обновленный) вывод их на экран. На вкладке Network в браузере гугл хрома можно наблюдать что браузер
получает полный список всех видео с альбома в виде объекта



Вопрос в следующем: можно ли как-то получить этот объект в js ?, например поместить этот объект в переменную что бы дальше можно было нормально с ним работать?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.01.2021, 14:20
Ответы с готовыми решениями:

Пытаюсь получить данные с сервера в json
Добрый день. Пытаюсь освоить extJs... есть класс User: Ext.define('app.model.User', { extend: 'Ext.data.Model', fields: ...

Отправить POST запрос и получить json данные с сервера. Как сделать?
Добрый день. Мне нужно создать html форму с двумя полями username и password, методом POST отправить ее на сервер. Далее получить от...

Boost.Asio. Как получить ответ от сервера в формате json или xml
Все привет, столкнулся с проблемой. Допустим, с помощью boost.asio и OpenSSL я делаю GET запрос сайту, пусть это будет api.vk.com. С...

8
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
18.01.2021, 15:06
Цитата Сообщение от Mr_Sergo Посмотреть сообщение
На вкладке Network в браузере гугл хрома можно наблюдать что браузер
получает полный список всех видео с альбома в виде объекта
Браузер запрашивает список всех видео после клика на вашу кнопку? Я правильно понял?
1
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
18.01.2021, 16:21  [ТС]
Цитата Сообщение от Balanaar Посмотреть сообщение
Браузер запрашивает список всех видео после клика на вашу кнопку?
И нет и да

Допустим в альбоме 100 видео, число видео из json полученного с сервера == числу видео в альбоме.

Как работает страница видео-альбома без моего скрипта:
Захожу я к себе в видео-альбом. В процессе загрузки страницы клиент делает запрос к серверу и получает json (который на скрине выше) в котором находится инфа о всех видео (100шт.). Далее клиент выводит div а в этот div только 50 видео из json

Как работает страница видео-альбома с моим скриптом:
После всего вышенаписанного запускается мой скрипт, по событию load.
*Он смотрит какие видео есть в том div (50шт.), собирает ссылки на них, названия, сортирует как мне нужно и выводит в отдельный попап, поверх всего сайта вк.

Проблема в том что при загрузке страницы, вк выводит в div только часть из своего json-списка (50шт.). Для того что бы получить следующую часть, еще 50шт., я прокручиваю страницу, в div вк добавляются дополнительные видео из json-списка а в мой попап нет. Что бы они добавлялись и в мой попап тоже- я сделал кнопку, при клике по которой происходит все то что описано в *

Получается слишком замудренно. И мне кажется что можно как-то получить тот json и работать с ним а не со списком полученным с div'а.

Надеюсь понятно изложил Если нет- спрашивайте, попробую дополнить.
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
18.01.2021, 16:23
Цитата Сообщение от Mr_Sergo Посмотреть сообщение
В процессе загрузки страницы клиент делает запрос к серверу и получает json (который на скрине выше) в котором находится инфа о всех видео (100шт.).
Тогда вы можете выполнить такой же запрос из своего скрипта аяксом и получить данные оттуда. Как отправить аякс-запрос вы в курсе, судя по вашей активности на форуме.
1
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
18.01.2021, 16:27  [ТС]
Цитата Сообщение от Balanaar Посмотреть сообщение
Тогда вы можете выполнить такой же запрос из своего скрипта аяксом и получить данные оттуда
Эх... если бы все так просто было Думаете я не пробовал? При аяксе, и ему подобных, на тот же самый адрес, на который посылает запрос вк, я получаю редирект на главную страницу сайта и никакого списка Подозреваю что в запросе чего-то не хватает, да и не уверен что такой запрос прокатит вообще. Вот и думаю: может как-то можно получить список из самого браузера как-то так
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
18.01.2021, 16:30
Лучший ответ Сообщение было отмечено Mr_Sergo как решение

Решение

Покажите код

Добавлено через 2 минуты
Никакого редиректа там не должно быть. Только если в заголовках ответа не указан заголовок Location. Но раз этот запрос вы видите во вкладке Network, то он исполняется успешно и без редиректа.
Без кода сказать что-то сложно, почему так происходит. Также приложите заголовки ответа и запроса, формируемыми вашим скриптом и скриптом vk. Сравним их.
1
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
18.01.2021, 16:30  [ТС]
Цитата Сообщение от Balanaar Посмотреть сообщение
Покажите код
Код чего? Весь код моего скрипта? или код аякс-запроса?
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
18.01.2021, 16:47
Цитата Сообщение от Mr_Sergo Посмотреть сообщение
Код чего?
Да хоть чего-нибудь. Давайте вашего аякс-запроса. Попробую эмулировать его у себя

Добавлено через 9 минут
А вообще я бы на вашем месте реализовывал задачу через VK API. Так надёжнее.

Добавлено через 1 минуту
Видео можно запрашивать этим методом:
https://vk.com/dev/video.get
1
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
18.01.2021, 19:11  [ТС]
Цитата Сообщение от Balanaar Посмотреть сообщение
Также приложите заголовки ответа и запроса
В хедерах и было все дело, я там намудрил. Нашел ошибку. Спасибо.

Так все в норме:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
async function list_build () {
    let data = await fetch("https://vk.com/al_video.php?act=load_videos_silent", {
    "headers": {
      "accept": "*/*",
      "accept-language": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
      "cache-control": "no-cache",
      "content-type": "application/x-www-form-urlencoded",
      "pragma": "no-cache",
      "sec-fetch-dest": "empty",
      "sec-fetch-mode": "cors",
      "sec-fetch-site": "same-origin",
      "x-requested-with": "XMLHttpRequest"
    },
    "referrer": "https://vk.com/videosИДПОЛЬЗОВАТЕЛЯ?section=album_5",
    "referrerPolicy": "strict-origin-when-cross-origin",
    "body": "al=1&need_albums=0&offset=0&oid=ИДПОЛЬЗОВАТЕЛЯ&rowlen=3&section=album_5&snippet_video=0",
    "method": "POST",
    "mode": "cors",
    "credentials": "include"
  })
  console.log(await data.json())
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2021, 19:11
Помогаю со студенческими работами здесь

Где можно получить курс нефти в JSON-формате?
Всем привет, подскажите, пожалуйста, где можно получать актуальные цены на нефть, желательно с выбором периода и в формате json. Спасибо:)

Можно ли через ajax получить json данные по url?
Как через ajax получать данные с других урлов? Вот так, это пытаюсь сделать я=))) Подскажите, как это чудо заставить работать?=)) ...

найти какое-нибудь API, по которому можно получить JSON-строку
Помогите найти какое-нибудь API, по которому можно получить JSON-строку с массивом каких-то объектов.

Можно ли не скачивая файл с сервера получить его MD5
Можно ли не скачивая файл с сервера получить MD5? Если да то как. Если же нет то посоветуйте как можно реализовать в лаунчере сравнение md5...

Можно ли получить данные с сервера времени без подключения к проекту дополнительных контролов типа Winsock?
Можно ли (и как) получить данные с сервера времени без подключения к проекту дополнительных контролов типа Winsock?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru