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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Если я дам ключ, то все запросы будут регистрироваться на меня.
Вот потому я и говорю что экстеншн - самый простой вариант. Когда он работает принцип такой же как будто сам пользователь зашел через свой аккаунт и лазит по ссылкам сам. Не знаю, правда, существует ли у ВК механизм борьбы с подобными ботами, у шаттерстока он точно имеется.
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 028
Реакции
1 197
Может, расширение для браузера savefrom.net?

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

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

Либо нажать на "Список фотографий " (см. картинку 2) - и получить фоновую страницу в браузере с фотками в реальных размерах, ну, и сохранять их, естественно.
1.jpg2.jpg3.jpg
 

eugeny

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

JAW

15 лет на форуме
Сообщения
15 797
Реакции
3 454
экстеншн - самый простой вариант.

Можно вот так:
Код:
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. Тама буковки ВК понятно нужно заменить.
 

ACTPOHOM

12 лет на форуме
Сообщения
2 981
Реакции
1 133
Можно скачать все фотки, потом по размеру файла рубануть превьюхи.
 

JAW

15 лет на форуме
Сообщения
15 797
Реакции
3 454
Внутри видим вот такую шляпу:
Код:
"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 это сделать как два пальца.
 
Последнее редактирование:

JAW

15 лет на форуме
Сообщения
15 797
Реакции
3 454
Вы меня разозлили, подключил винчестер...
Но сейчас это сложно.

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 нужно пробовать, пробовать и пробовать, что то ему ещё нужно, чего я не соображу.
 

eugeny

15 лет на форуме
Сообщения
855
Реакции
210
И в принципе оно, теоретиески должно сработать. Но что то у меня ничерта не получается и вообще с этим вконтактиком и его SDK нужно пробовать, пробовать и пробовать, что то ему ещё нужно, чего я не соображу.
Там надо учитывать, что для запроса доступа к какой либо группе, надо чтобы хозяин группы дал рарешение вашему приложению. Пробовать лучше на своих постах.
 

JAW

15 лет на форуме
Сообщения
15 797
Реакции
3 454
Они что, опять правила изменили?
Сейчас попробую свой скрипт...
 

eugeny

15 лет на форуме
Сообщения
855
Реакции
210
Они что, опять правила изменили?
Сейчас попробую свой скрипт...
Я как понимаю, лучше парсить через php библиотеки CURL и забить на АПИ контактика. Но для задачи ТС проще экстеншен создать.
 

JAW

15 лет на форуме
Сообщения
15 797
Реакции
3 454
Я вот так забираю:
Код:
 $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 получить.
У меня для этого строка выписана, переодически обновляю и всё.
 
Последнее редактирование:

JAW

15 лет на форуме
Сообщения
15 797
Реакции
3 454
, лучше парсить через php библиотеки CURL
Что ты там парсить собрался? Там лежит 3 разрешения картинки, обычно. Показывает на экран он минимальное, а задача выдрать максимальное.
 

eugeny

15 лет на форуме
Сообщения
855
Реакции
210
Что ты там парсить собрался? Там лежит 3 разрешения картинки, обычно. Показывает на экран он минимальное, а задача выдрать максимальное.
Я в глобальном масштабе )). Задаешь для PHP-парсера адреса групп в контакте, а он их через CURL парсит на наличие новых новостей и раздербанивает на текст и имиджи. Тебе не нужны никакие разрешения в отличие от АПИ контактика.
 

JAW

15 лет на форуме
Сообщения
15 797
Реакции
3 454
Ну, так изначально так и через API работало.
Это потом они стали требовать токены получать. Мне, по большому счёту всё равно.
Плохо стало, когда они ввели ограничение на количество запросов в день от пользователя.
Что в купе с привязкой к Сим карте проблема. Я уже ID'ки со всей семьи и знакомых кому комп правил собрал :)

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

А в глобальном масштабе, ограничения на пользователя, а не приложение.
Это если ты решил в одно лицо весь вконтактик скачать, как я, то проблема.
А обычные юзверы и админы групп ограничений даже не заметят.
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
в ВК адрес оригинальной картинки хранится в атрибуте
А, даже так?
Тогда задача проста как мычание, даже не понимаю как кому то удается на этом профит делать
Безо всяких скриптов и экстеншнов, действительно тупо
скачать все фотки, потом по размеру файла рубануть превьюхи
 

izrukvruki

Топикстартер
15 лет на форуме
Сообщения
1 833
Реакции
302
А Новости в твоём случае, это что?
Можно ссылку на пример, я попробую дёрнуть.
Это записи на стене некого сообщества.
Вот например, мне так присылают:
...впереди нужно вбить вк.ком...
wall-74356725_50082
wall-74356725_50088
wall-74356725_50099
wall-74356725_50126
 

JAW

15 лет на форуме
Сообщения
15 797
Реакции
3 454
Да.
Я тебе в личку сейчас кину строку, только не злоупотребляй, токен лучше разобаться и свой полуить....
 

JAW

15 лет на форуме
Сообщения
15 797
Реакции
3 454
В общем проблема усложняется :)
Я могу дать приватно команду, которая скачивает посты по списку, в Json, или XML
Задача сводится к тому, чтобы это дело распарсить и скачать картинки.

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

Возьмётся кто?
 

ACTPOHOM

12 лет на форуме
Сообщения
2 981
Реакции
1 133
В общем проблема усложняется :)
Я могу дать приватно команду, которая скачивает посты по списку, в Json, или XML
Задача сводится к тому, чтобы это дело распарсить и скачать картинки.

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

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