Как сохранить много картинок из ВК?

  • Автор темы Автор темы izrukvruki
  • Дата начала Дата начала
Если я дам ключ, то все запросы будут регистрироваться на меня.
Вот потому я и говорю что экстеншн - самый простой вариант. Когда он работает принцип такой же как будто сам пользователь зашел через свой аккаунт и лазит по ссылкам сам. Не знаю, правда, существует ли у ВК механизм борьбы с подобными ботами, у шаттерстока он точно имеется.
 
Может, расширение для браузера savefrom.net?

Открыть новость. Жмакнуть по расширению (см. картинку 1), нажать на кнопочку продолжить и получить (в той папке, куда скачивается по умолчанию) папочку "Portrait" с фотками реального размера. (см. картинку 3 )

Либо, открыть новость. Жмакнуть по расширению (см. картинку 1), получить список урл (см. картинку 2), список загнать в какую-нибудь качалку файлов из инета. Вуаля.

Либо нажать на "Список фотографий " (см. картинку 2) - и получить фоновую страницу в браузере с фотками в реальных размерах, ну, и сохранять их, естественно.
1.jpg2.jpg3.jpg
 
Вот потому я и говорю что экстеншн - самый простой вариант. Когда он работает принцип такой же как будто сам пользователь зашел через свой аккаунт и лазит по ссылкам сам. Не знаю, правда, существует ли у ВК механизм борьбы с подобными ботами, у шаттерстока он точно имеется.
Не знаю как на шатерстоке, но в ВК адрес оригинальной картинки хранится в атрибуте. Поэтому всё очень просто для экстеншена: берем адрес картинки, создаем объект Image() из адреса, берем из него размеры, создаем canvas с размерами, в него размещаем image, через Blob() его сохраняем. Визуально мы получим только запрос на сохранение картинки.
 
экстеншн - самый простой вариант.

Можно вот так:
Код:
https://ВК.com/dev/wall.getById?params[posts]=-10904611_132211&params[extended]=0&params[copy_history_depth]=2&params[v]=5.95
Нажать выполнить и получить в окошечке текст поста с ссылочками на картинки.
Можно даже пачку постов через запятую перечислить.

ID поста, берём правой кнопкой мыши на времени поста, получаем ссылку вида:
https://ВК.com/wall-95584104_3886
Выделенное - ID поста, где до _ с минусом - ID группы (у пользователя минуса нет), за подчёркиванием номер поста в группе, нумерация последовательна.

P.S. Тама буковки ВК понятно нужно заменить.
 
Можно скачать все фотки, потом по размеру файла рубануть превьюхи.
 
Внутри видим вот такую шляпу:
Код:
"attachments": [{
"type": "photo",
"photo": {
"id": 456289910,
"album_id": -7,
"owner_id": -10904611,
"user_id": 100,
"sizes": [{
"type": "m",
"url": "https://sun9-20.u...744/MQRXwqtfB2U.jpg",
"width": 97,
"height": 130
}, {
"type": "o",
"url": "https://sun9-28.u...749/Rb3hERftbEM.jpg",
"width": 130,
"height": 173
}, {
"type": "p",
"url": "https://sun9-18.u...74a/pnqTHxkoJ4c.jpg",
"width": 200,
"height": 267
}, {
"type": "q",
"url": "https://sun9-28.u...74b/G_pgO2w-DQs.jpg",
"width": 320,
"height": 427
}, {
"type": "r",
"url": "https://sun9-13.u...74c/Szh9I4MJtic.jpg",
"width": 510,
"height": 680
}, {
"type": "s",
"url": "https://sun9-26.u...743/Ksz9d_dYSDw.jpg",
"width": 56,
"height": 75
}, {
"type": "w",
"url": "https://sun9-2.us...748/mVXb5AB3Hmk.jpg",
"width": 1620,
"height": 2160
}, {
"type": "x",
"url": "https://sun9-21.u...745/5wUeZoNewKA.jpg",
"width": 453,
"height": 604
}, {
"type": "y",
"url": "https://sun9-33.u...746/efeeWtNAc6w.jpg",
"width": 605,
"height": 807
}, {
"type": "z",
"url": "https://sun9-5.us...747/uCHRwTMr1e0.jpg",
"width": 810,
"height": 1080
}],

т.е. там единственный вопрос выдернуть нормально вот это содержимое через SDK. Имея Токен ID это сделать как два пальца.
 
Последнее редактирование:
Вы меня разозлили, подключил винчестер...
Но сейчас это сложно.

1. идём вот сюды:
https://ВК.com/apps?act=manage
Нажимаем Создать приложение, придумываем имя.
Выбираем: Standalone
Нажимаем загрузить приложение, соглашаемся с лицензией.
Потом идём в настройки,
Включаем приложение
Берём ID приложения, остальные циферки переписываем на бумажку, ибо может пригодяться...

2.
Выполняем:
Код:
https://oauth.ВК.com/authorize?client_id=9999999&display=page&redirect_uri=https://oauth.ВК.com/blank.html&scope=140492191&response_type=token&v=5.60&state=123456

Выделен ID приложения.
Вылезает форма авторизации, соглашаемся.
У меня не прошла авторизация с моим тестовом приложением, нужно посмотрет права доступа, я что то слишком много походу захотел... Но старое работает...

Но в результате в строке адреса получаем:
https://oauth.ВК.com/blank.html#access_token=610e18b43d5eb5d804aeef60479f500a0574699999999999999999999999999999999999999&expires_in=0&user_id=9999&email=Janishewskiym&state=123456

Вот этот access_token записываем на бумажку, он нам дальше понадобится.

3.
Выполняем в строке:
Код:
https://api.ВК.com/method/wall.getByid?posts=-10904611_132211&v=5.95&access_token=610e18b43d5

И в принципе оно, теоретиески должно сработать. Но что то у меня ничерта не получается и вообще с этим вконтактиком и его SDK нужно пробовать, пробовать и пробовать, что то ему ещё нужно, чего я не соображу.
 
И в принципе оно, теоретиески должно сработать. Но что то у меня ничерта не получается и вообще с этим вконтактиком и его SDK нужно пробовать, пробовать и пробовать, что то ему ещё нужно, чего я не соображу.
Там надо учитывать, что для запроса доступа к какой либо группе, надо чтобы хозяин группы дал рарешение вашему приложению. Пробовать лучше на своих постах.
 
Они что, опять правила изменили?
Сейчас попробую свой скрипт...
 
Они что, опять правила изменили?
Сейчас попробую свой скрипт...
Я как понимаю, лучше парсить через php библиотеки CURL и забить на АПИ контактика. Но для задачи ТС проще экстеншен создать.
 
Я вот так забираю:
Код:
 $url = "https://api.ВК.com/method/wall.get?owner_id="+$page_id+"&count=100&access_token=" + $token +"&v=3.0"
$request = Invoke-WebRequest -Uri $url
$wall_array = $request.content | ConvertFrom-Json

а потом эту структуру разгребаю.
$text = $wall_array.Response[$i].text #текст записи
$wall_id = $wall_array.Response[$i].id #id записи

Но да, для этого нужен access_token получить.
У меня для этого строка выписана, переодически обновляю и всё.
 
Последнее редактирование:
, лучше парсить через php библиотеки CURL
Что ты там парсить собрался? Там лежит 3 разрешения картинки, обычно. Показывает на экран он минимальное, а задача выдрать максимальное.
 
Что ты там парсить собрался? Там лежит 3 разрешения картинки, обычно. Показывает на экран он минимальное, а задача выдрать максимальное.
Я в глобальном масштабе )). Задаешь для PHP-парсера адреса групп в контакте, а он их через CURL парсит на наличие новых новостей и раздербанивает на текст и имиджи. Тебе не нужны никакие разрешения в отличие от АПИ контактика.
 
Ну, так изначально так и через API работало.
Это потом они стали требовать токены получать. Мне, по большому счёту всё равно.
Плохо стало, когда они ввели ограничение на количество запросов в день от пользователя.
Что в купе с привязкой к Сим карте проблема. Я уже ID'ки со всей семьи и знакомых кому комп правил собрал :)

А для локальной задачи зарегистрировать приложение и получить токен не проблема. Врят ли больше 15000 запросов в день сделают.

А в глобальном масштабе, ограничения на пользователя, а не приложение.
Это если ты решил в одно лицо весь вконтактик скачать, как я, то проблема.
А обычные юзверы и админы групп ограничений даже не заметят.
 
Последнее редактирование:
в ВК адрес оригинальной картинки хранится в атрибуте
А, даже так?
Тогда задача проста как мычание, даже не понимаю как кому то удается на этом профит делать
Безо всяких скриптов и экстеншнов, действительно тупо
скачать все фотки, потом по размеру файла рубануть превьюхи
 
А Новости в твоём случае, это что?
Можно ссылку на пример, я попробую дёрнуть.
Это записи на стене некого сообщества.
Вот например, мне так присылают:
...впереди нужно вбить вк.ком...
wall-74356725_50082
wall-74356725_50088
wall-74356725_50099
wall-74356725_50126
 
Да.
Я тебе в личку сейчас кину строку, только не злоупотребляй, токен лучше разобаться и свой полуить....
 
В общем проблема усложняется :)
Я могу дать приватно команду, которая скачивает посты по списку, в Json, или XML
Задача сводится к тому, чтобы это дело распарсить и скачать картинки.

Я этим заниматься не буду, ибо было давно и неправда, опять вспоминать что там с этим powerShell не очень хоца.
Но для того, у кого руки на пульсе дело в общем пустяковое.

Возьмётся кто?
 
В общем проблема усложняется :)
Я могу дать приватно команду, которая скачивает посты по списку, в Json, или XML
Задача сводится к тому, чтобы это дело распарсить и скачать картинки.

Я этим заниматься не буду, ибо было давно и неправда, опять вспоминать что там с этим powerShell не очень хоца.
Но для того, у кого руки на пульсе дело в общем пустяковое.

Возьмётся кто?
распарсить не проблема, Xpath + regExp, но зачем это вообще все ?