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

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

18.01.2021, 14:20. Показов 2303. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru