Таймкоды для вас: 00:00 - Интро 00:22 - Описание проекта 01:28 - Получение токена ВКонтакте 03:00 - Установка нужных для работы библиотек и импорт токена 03:26 - Составляем ссылку для доступа к стене группы 05:21 - Получаем первые данные 05:48 - Создание функции get_wall_posts 06:58 - Архитектура проекта 07:30 - Создаем директории под проекты 08:11 - Сохраняем данные в JSON файл 09:15 - Создание списка для ID постов 09:59 - Проверка на первый или повторный парсинг группы 11:58 - Сбор данных из поста 13:22 - Получение одной фотографии из поста 14:03 - Получение всех фотографий из поста 15:06 - Получение фотографий с максимальным разрешением
Хорошая идея) У меня уже группа полностью автоматизирована на python. Посты автоматически генерируются, и выкладываются. Я могу хоть несколько месяцев не трогать группу, и всё будет работать. Также есть немного кода для того чтобы с других групп полностью копировать контент в свою группу, но я этим не пользуюсь)
Спасибо за фидбэк 💪 А посты переделываешь? В том смысле может текст какой накладываешь с помощью pillow или opencv, или просто репост готовых с выборкой? Солидарен с Ильей, было бы интересно посмотреть код, если ещё и самописный то вообще огонь.
@@PythonToday если говорить про ту, что автоматизированная, то тут просто парс случайной цитаты с сайта, а затем выбор рандомной фотографии из уже заготовленных. 60 фотографий для цитат в принципе достаточно, и проблем не вызывает. А если говорить про ту, что полностью парси, то я выбираю в рандомно группу из списка, затем выбираю рандомный пост за последнее время с высокой активностью, беру оттуда текст, и фотографии. Косяк в том, что если открыть фотографию, то показывается группа из которой было спаршено, зато проблем с разрешением, и порядком фото нет. А на счет кода, я сейчас скину ниже, но должен предупредить что я новичок, и строго не судите :D
Вот код который парсит у меня текст и фото: def random_post_get(url_group): data = { 'access_token': config.ACC_TOK, 'domain': url_group, 'count': 100, 'v': 5.124} r = requests.post('api.vk.com/method/wall.get', data).json() r = r['response'] r = r['items'] cnv = 0 while cnv
На счет разрешений фото! Сейчас VK переделали API и в версии 5.81 под ключем "photo" есть ключ "sizes" в котором хранится массив всех разрешений фото. И чтобы нам достать самое большое разрешение достаточно указать последний индекс массива "sizes", а именно ["sizes"][-1][url]
@@PythonToday Сейчас можно этот массив перебирать внутри по "type" z - где z оригинал файла, и брать [-1] т.к сейчас оно не соответствует максимальному значению, там рандом стало.
а можно подробнее? сейчас как раз на этом этапе встал. не понимаю, какой алгоритм лучше, чтобы извлечь url именно наибольшего размера. я новичок. Удается вывести все данные sizes, а начинаю писать условия и получается очень много веток if, от которых голова пухнет и сам путаюсь в своих же if.
@@el.cheshire В документации же всё есть. Если тебе нужно фото с максимальным разрешением указывай в параметре fields, либо photo_max_orig, либо photo_max
Видео как всегда супер! Объяснение на высшем уровне!) Обязательно переварю остальные! В связи с последними событиями с социальными сетями хотелось бы побольше видео про создание инструментов (ботов, приложений и тд) для ВК.
@@PythonToday сейчас материалы про работу с ВК и создание инструментов для блогерской темы будет залетать! К примеру я очень жду от Вас видео, потому что очень всё хорошо показываете и объясняете!
Классная подача, приятно смотреть, спасибо! хотелось бы ролики посмтреть на тему instagram graph api) очень хочется свой автопостинг написать, но там сложнее получить к нему доступ, чем к вк(
Конечно интересно, я не программист, но меня всё равно привлекло, и довольно понятно. Думаю даже повторить бы смог если постараться, но это займёт не один час. Больше интересно то, что пускай я даже основ не знаю, я начинаю всё больше понимать что к чему и зачем. Сам код не напишу, я же только пару видео увидел, до этого не знал ничего о программировании. Но надеюсь смогу в будущем. Спасибо вам😁))) И ещё, мне интересно, как написать код для того чтобы кусок металла стал компьютером, и там же, код для создание кодов. Короче говоря не просто основы, но и истоки. И мне интересно, если автор канала это читает, вы знаете как такое сделать? Просто немного не понимаю как из ничего написали код для работы первого компьютера, где потом писали коды для его усовершенствования и других компьютеров, это же безумно интересно🤩🤩🤩🤩😅))))
Отличная подача информаций. Отличный голос озвучки, все ясно и понятно. Боже как классно вы не представляете, после говно курса, когда диктор что-то бубнит и реально трудно понимать. Надев наушники уши болят от баса и шипения(в том говно курсе). А тут прям ляпота!
Привет, а на кой оно? Чем плох Firefox и Chromium? На сколько знаю, раньше были костыли с запуском Opera, сейчас вроде их устранили, но её никто и не юзает в тестах либо прям очень маленький процент, может ошибаюсь конечно.
Таааак. Если я всё правильно понимаю, токен здесь от страницы. То есть, его можно с флагом messages создать и бот будет писать в беседы от лица твоего профиля?
Здравствуйте, я понимаю, что шанс ответа мал, но все же попробую, как работать с фотом, которое тебе прислал пользователь , в плане скачать его себе куда-то в папку, перерыл весь интернет, ничего путного нет, подскажите, пожалуйста!!!!
Огромное спасибо за видео! Просмотрела уже большое количество. Смотреть очень комфортно, из Вас получился бы хороший преподаватель. Если можно, то подскажите как с вами связаться, если есть конкретные задачи за оплату.
А подскажите, как сейчас выкачать фото. Они по иному, почему-то, в json. Есть как и на видео, но только те, что в ресте. А если фото напрямую в посте, то оно не так
У меня получился вот такой код. Это на 15.03.2022. Версия вк 5.131 Тут сразу с учетом множественности фото в постах. Но не учтено, что это может быть репост. Если это репост, то он просто не найдет "attachments" и пойдет дальше. Мб это учтут в следующих видео, а мб надо самим дописывать. Но от этого увеличивается лишь путь поиска "attachments". Я не стала его включать ( т.к. писала код для себя для понимания. И мне этого хватает) # извлекаем данные из постов for post in posts: post_id = post['id'] print(f'Открываю пост с ID {post_id}') try: if "attachments" in post: post = post["attachments"] #начинаем забирать фото попорядку. с начала 1, потом много for post_item_photo in post: if post_item_photo["type"] == "photo": # выясняем тип в посте height = 0 # для хранения макс высоты ( а занчит макс разрешение) h_max = 0 # для хранения индекса ячейки с макс разрешением for h in range(len(post_item_photo["photo"]["sizes"])): # ходим по всем разрешениям if post_item_photo["photo"]["sizes"][h]['height']>height: # если оно больше данного height = post_item_photo["photo"]["sizes"][h]['height'] # то запоминаем высоту h_max = h # и запоминаем, где он расположен post_photo = post_item_photo["photo"]["sizes"][h_max]["url"] # забираем юрл из макс разрешения print(f'Фото с расширением {height}') print(post_photo)
else: print('Линк или аудио пост') break except Exception: print(f"Что-то посшло не так с постом ID {post_id}!")
@@juiwas_morori спасибо большое, скопировал вашу "портянку" и теперь получаю фото в макс. разрешении🤗 Можно у вас поинтересоваться, где вы обучались программированию?
Не устанавливается нужная библиотека $ : Имя "$" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку. строка:1 знак:1 + $ pip install requests + ~ + CategoryInfo : ObjectNotFound: ($:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
Можно было бы собирать из поста все "photo_****" с помощью startwith в массив, обрезать у каждого "photo_" и преобразовать в int, а потом просто взять максимальное из массива конкатенацией соединить "photo_" и максимальное число.
А что vk_api не используете? Там и токен проще получить... VK = vk_api.VkApi(login, passw) VK.auth() print(VK.token['access_token']) Да и капчу обработать можно быстро, например ту же cptch
@@PythonToday Сложно не согласиться ))) Если не трудно, можете оставлять ссылки на pypi.org в телеграме в постах с тегам #tipsandtricks ? Классный формат постов, нравится! Было бы удобно с ходу на pypi заходить!
У меня вопрос, а что делать если у фото нет расширения, а есть только ширина и высота, в этом случае как выбрать фото наилучшего качества? (Привет из 21 года) Если вопрос глупый, прошу прощения, я новичок и только начинаю разбираться во всем
Как у фото нет расширения? Оно в base64? Если да, то можно без проблем декодировать в изобрежение. В google "base64 to img python". Но прям сомневаюсь что ты столкнулся с этим. По поводу качества конечно по ширине и высоте проще, мы этим собственно и занимались. В общем не понял вопроса.
@@PythonToday Я имею ввиду что у меня в json файле вообще нет "photo_2560", "photo_1280" и тд. Вот этих расширений, из-за чего код попросту работает не корректно
@@PythonToday от group_ name ничего не зависит. Пробовал подставлять разные значения, проверяется наличие и создаётся директория, файл, идёт запись номеров постов в файл, а парсит все равно мою стену. Может имеет значение рабочая среда? Убунту + терминал + sublime text 3. Python 3, все пакеты установлены .
@@КонстантинСугаков Скорее всего неверно сформировал запрос на получение токена. Попробуй заново создать приложение, и использовать эту ссылку для получения токена: oauth.vk.com/authorize?client_id=СЮДА_ID_СВОЕГО_ПРИЛОЖЕНИЯ&display=page&redirect_uri=oauth.vk.com/blank.html&scope=wall,video,offline&response_type=token&v=5.52
Вот ещё способ: link: str = '' max_quality: int = 0 for i in post[0]["photo"]: if re.match("photo_", i) is not None: # Да, я очень люблю регулярки! current_quality = int(i.split('_')[1]) if current_quality > max_quality: max_quality = current_quality link = post[0]["photo"][i] print(f'quality: {max_quality}, link: {link}')
что не так? Введите название группы: fitnessed {"error":{"error_code":5,"error_msg":"User authorization failed: invalid access_token (4).","request_params":[{"key":"domain","value":"fitnessed"},{"key":"count","value":"40"},{"key":"v","value":"5.52"},{"key":"method","value":"wall.get"},{"key":"oauth","value":"1"}]}} Process finished with exit code 0
Мдаа, я отпишусь наверно, потому что я не успеваю смотреть и переварить все информацию. 100 раз пересмотрел понял только 5 %. Очередной раз убеждаюсь лучше искать информацию на иностранной платформе. У тебя вроде понятно, но все ровно не понятно, пробелы остаются
Привет, спасибо за твои уроки. Я тут начал делать небольшие видио вкладываю душу, оцени пожалуйста. Но хочется что ещё кто посмотрел и оценил. У тебя можно купить рекламу или что то вроде того. Мне будет приятно даже если кто нибудь посмотрит моё видио. Надеюсь ответишь🙂
Я начал вести канал, т.к не хватало практики. Если у тебя есть опыт в программировании, есть проекты, обязатально снимай видео и делись опытом. Результат не заставит себя ждать и получишь отклик. Главное не останавливайся, цифровизация и как следствие программирование популярны как никогда.
photo_quality = [] for i in range(0, len(post[0]["photo"]["sizes"])): photo_quality.append((post[0]["photo"]["sizes"][i]["height"], i)) версия 5.81 там сейчас json по другому структура выглядит, вот алгоритм для поиска наибольшего разрешения. И вот так выглядит вывод if len(post) == 1: post_photo = post[0]["photo"]["sizes"][max(photo_quality)[1]]["url"] print(post_photo) else: for post_item_photo in post: post_photo = post_item_photo["photo"]["sizes"][max(photo_quality)[1]]["url"] print(post_photo)
Таймкоды для вас:
00:00 - Интро
00:22 - Описание проекта
01:28 - Получение токена ВКонтакте
03:00 - Установка нужных для работы библиотек и импорт токена
03:26 - Составляем ссылку для доступа к стене группы
05:21 - Получаем первые данные
05:48 - Создание функции get_wall_posts
06:58 - Архитектура проекта
07:30 - Создаем директории под проекты
08:11 - Сохраняем данные в JSON файл
09:15 - Создание списка для ID постов
09:59 - Проверка на первый или повторный парсинг группы
11:58 - Сбор данных из поста
13:22 - Получение одной фотографии из поста
14:03 - Получение всех фотографий из поста
15:06 - Получение фотографий с максимальным разрешением
шикарный преподаватель!
продолжай в том же духе!!
невероятно интересно и приятно слушать и смотреть тебя.
Спасибо большое за фидбэк 💪
Все круто! Было бы неплохо, если показали , как посты в группе ВК дублировались в телеграмм :)
Отличная речь, и фоновая музыка. Продуманная подача материала. Готовый код! Восхищен. Спасибо!)
Только окунаюсь в python, спасибо, интересно смотреть за процессом!
Благодарю за фидбэк 💪
как прогресс?
Очень круто, не понятно почему так мало лайков. Чувак, пожалуйста, не останавливайся!
Благодарю 💪
Очень интересное видео, спасибо. Жду продолжения
Благодарю за фидбэк 💪
Хорошая идея) У меня уже группа полностью автоматизирована на python. Посты автоматически генерируются, и выкладываются. Я могу хоть несколько месяцев не трогать группу, и всё будет работать. Также есть немного кода для того чтобы с других групп полностью копировать контент в свою группу, но я этим не пользуюсь)
Дайте проект посмотреть😉
@@Noable увы, но он мне нужен для комм. цели)
Спасибо за фидбэк 💪 А посты переделываешь? В том смысле может текст какой накладываешь с помощью pillow или opencv, или просто репост готовых с выборкой? Солидарен с Ильей, было бы интересно посмотреть код, если ещё и самописный то вообще огонь.
@@PythonToday если говорить про ту, что автоматизированная, то тут просто парс случайной цитаты с сайта, а затем выбор рандомной фотографии из уже заготовленных. 60 фотографий для цитат в принципе достаточно, и проблем не вызывает. А если говорить про ту, что полностью парси, то я выбираю в рандомно группу из списка, затем выбираю рандомный пост за последнее время с высокой активностью, беру оттуда текст, и фотографии. Косяк в том, что если открыть фотографию, то показывается группа из которой было спаршено, зато проблем с разрешением, и порядком фото нет. А на счет кода, я сейчас скину ниже, но должен предупредить что я новичок, и строго не судите :D
Вот код который парсит у меня текст и фото:
def random_post_get(url_group):
data = {
'access_token': config.ACC_TOK,
'domain': url_group,
'count': 100,
'v': 5.124}
r = requests.post('api.vk.com/method/wall.get', data).json()
r = r['response']
r = r['items']
cnv = 0
while cnv
На счет разрешений фото! Сейчас VK переделали API и в версии 5.81 под ключем "photo" есть ключ "sizes" в котором хранится массив всех разрешений фото. И чтобы нам достать самое большое разрешение достаточно указать последний индекс массива "sizes", а именно ["sizes"][-1][url]
Благодарю за фидбэк и информацию!
@@PythonToday Сейчас можно этот массив перебирать внутри по "type" z - где z оригинал файла, и брать [-1] т.к сейчас оно не соответствует максимальному значению, там рандом стало.
а можно подробнее? сейчас как раз на этом этапе встал. не понимаю, какой алгоритм лучше, чтобы извлечь url именно наибольшего размера. я новичок. Удается вывести все данные sizes, а начинаю писать условия и получается очень много веток if, от которых голова пухнет и сам путаюсь в своих же if.
@@el.cheshire В документации же всё есть. Если тебе нужно фото с максимальным разрешением указывай в параметре fields, либо photo_max_orig, либо photo_max
@@fantomasray не могу понять, в какой строке кода что надо изменить. вместо photo1280 прописать еще один фильтрующий цикл?
Огонь пушка!
Благодарю 💪
Да видео очень интересно, продолжайте обязательно.
Благодарю 💪
новый крутой видос, ура!
Спасибо 💪
Видео как всегда супер! Объяснение на высшем уровне!) Обязательно переварю остальные! В связи с последними событиями с социальными сетями хотелось бы побольше видео про создание инструментов (ботов, приложений и тд) для ВК.
Большое спасибо за фидбэк! В то время материал совсем не зашел, если увижу активность под роликами, сразу возьмусь за продолжение.
@@PythonToday сейчас материалы про работу с ВК и создание инструментов для блогерской темы будет залетать! К примеру я очень жду от Вас видео, потому что очень всё хорошо показываете и объясняете!
Круто, но очень быстро для меня. Если можно разжёвывать подробнее для новичков, то буду благодарен не только я.
Спасибо за фидбэк. А что не понятно?
Что там разжевывать? Знания элементарные, учите основы)
Поддерживаю, сегодня первый раз запустил питон, поэтому и мне тоже непонятно
Классная подача, приятно смотреть, спасибо! хотелось бы ролики посмтреть на тему instagram graph api) очень хочется свой автопостинг написать, но там сложнее получить к нему доступ, чем к вк(
Спасибо за фидбэк 💪 Не копался в нем, посмотрю
со временем под каждым видео поставлю лайкосик, странно, что мало лайкосов в целом. Автор спасибо тебе за доступно и наглядно подаваемую инфу.
Спасибо за поддержку!
Конечно интересно, я не программист, но меня всё равно привлекло, и довольно понятно. Думаю даже повторить бы смог если постараться, но это займёт не один час. Больше интересно то, что пускай я даже основ не знаю, я начинаю всё больше понимать что к чему и зачем. Сам код не напишу, я же только пару видео увидел, до этого не знал ничего о программировании. Но надеюсь смогу в будущем. Спасибо вам😁)))
И ещё, мне интересно, как написать код для того чтобы кусок металла стал компьютером, и там же, код для создание кодов. Короче говоря не просто основы, но и истоки. И мне интересно, если автор канала это читает, вы знаете как такое сделать? Просто немного не понимаю как из ничего написали код для работы первого компьютера, где потом писали коды для его усовершенствования и других компьютеров, это же безумно интересно🤩🤩🤩🤩😅))))
Отлично описаны действия.
Отличная подача информаций. Отличный голос озвучки, все ясно и понятно. Боже как классно вы не представляете, после говно курса, когда диктор что-то бубнит и реально трудно понимать. Надев наушники уши болят от баса и шипения(в том говно курсе). А тут прям ляпота!
Большое спасибо за поддержку!
полезный и информативный видос, жаль что мало просмотров и лайков
Спасибо большое за фидбэк! Все руки не дойдут продолжить)
Спасибо за урок
Благодарю за фидбэк 💪
Очень круто, спасибо!
Благодарю! Рад что полезно
Ничего не понял, но было интересно
В ²⁰²³ у кого проблема получения токена. Вам нужно включить приложение в настройках. Сейчас через выключенное 😒😒приложение нельзя авторизоваться.®
Почему у меня json файл выводит данные с моей стены, а не со стены сообщества которое я хочу парсить?
Приветик)) я один из первых кто смотрит этот видос) Сделай, пожалуйста, видео как использовать не ChromeDriver для селениум а OperaDriver!
Пожалуйста!
Привет, а на кой оно? Чем плох Firefox и Chromium? На сколько знаю, раньше были костыли с запуском Opera, сейчас вроде их устранили, но её никто и не юзает в тестах либо прям очень маленький процент, может ошибаюсь конечно.
@@PythonTodayУ меня нет Chrome или Firefox, а для тестов не хочется ставить.
Супер-супер!
Благодарю
Спасибо за видос!
Благодарю за фидбэк
Четко !
Спасибо
4:49 Прошу прощения, не понял момент: как узнать, какая версия сейчас?
Подскажите, пожалуйста почему то у меня не работает этот способ с публичными сообществами пишет {"response":{"count":0,"items":[]}}
9:51 for frash_post_id... - а почему бы не использовать ЛК!?
Таааак.
Если я всё правильно понимаю, токен здесь от страницы. То есть, его можно с флагом messages создать и бот будет писать в беседы от лица твоего профиля?
Здравствуйте, я понимаю, что шанс ответа мал, но все же попробую, как работать с фотом, которое тебе прислал пользователь , в плане скачать его себе куда-то в папку, перерыл весь интернет, ничего путного нет, подскажите, пожалуйста!!!!
Огромное спасибо за видео! Просмотрела уже большое количество. Смотреть очень комфортно, из Вас получился бы хороший преподаватель. Если можно, то подскажите как с вами связаться, если есть конкретные задачи за оплату.
Благодарю за фидбэк) Извините, но я не беру сейчас заказы. Не хватает времени
Спасибо за ответ, надеюсь вернуться к теме, когда у вас появится возможность. Мне особо спешить некуда...;-)
А что делать если пишет invalid json?
А подскажите, как сейчас выкачать фото. Они по иному, почему-то, в json. Есть как и на видео, но только те, что в ресте. А если фото напрямую в посте, то оно не так
У меня получился вот такой код. Это на 15.03.2022. Версия вк 5.131
Тут сразу с учетом множественности фото в постах. Но не учтено, что это может быть репост. Если это репост, то он просто не найдет "attachments" и пойдет дальше. Мб это учтут в следующих видео, а мб надо самим дописывать. Но от этого увеличивается лишь путь поиска "attachments". Я не стала его включать ( т.к. писала код для себя для понимания. И мне этого хватает)
# извлекаем данные из постов
for post in posts:
post_id = post['id']
print(f'Открываю пост с ID {post_id}')
try:
if "attachments" in post:
post = post["attachments"]
#начинаем забирать фото попорядку. с начала 1, потом много
for post_item_photo in post:
if post_item_photo["type"] == "photo": # выясняем тип в посте
height = 0 # для хранения макс высоты ( а занчит макс разрешение)
h_max = 0 # для хранения индекса ячейки с макс разрешением
for h in range(len(post_item_photo["photo"]["sizes"])): # ходим по всем разрешениям
if post_item_photo["photo"]["sizes"][h]['height']>height: # если оно больше данного
height = post_item_photo["photo"]["sizes"][h]['height'] # то запоминаем высоту
h_max = h # и запоминаем, где он расположен
post_photo = post_item_photo["photo"]["sizes"][h_max]["url"] # забираем юрл из макс разрешения
print(f'Фото с расширением {height}')
print(post_photo)
else:
print('Линк или аудио пост')
break
except Exception:
print(f"Что-то посшло не так с постом ID {post_id}!")
@@juiwas_morori спасибо большое, скопировал вашу "портянку" и теперь получаю фото в макс. разрешении🤗
Можно у вас поинтересоваться, где вы обучались программированию?
Отличная идея, хорошее видео, хотелось бы узнать, при написании этого бота, не возникало ли ошибок? Судя по коментам, у меня одно проблема
Благодарю за фидбэк! На момент написания кода, проблем не было
@@PythonToday а задать вопрос, по этому коду можно? Именно по ошибке
Можно поинтересоваться, для чего нужна програ «WS», которая лежит под пайчарм, для чего она?
WebStorm для JS
@@PythonToday спасибо
А как посмотреть какая версия API у меня 4:46?
Не устанавливается нужная библиотека
$ : Имя "$" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:1
+ $ pip install requests
+ ~
+ CategoryInfo : ObjectNotFound: ($:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Какой редактор кода используете? Как называется?
PyCharm
Можете подсказать пожалуйста: почему когда я вставляю имя группы, видны посты с моей страницы в вк
есть решение?
@@Globalno-y3f была такая же проблема, стал вставлять короткую ссылку группы и все заработало
Можно было бы собирать из поста все "photo_****" с помощью startwith в массив, обрезать у каждого "photo_" и преобразовать в int, а потом просто взять максимальное из массива конкатенацией соединить "photo_" и максимальное число.
Т.е этот вариант проще?))
@@PythonToday ну вроде бы быстрее, чем вложенные циклы и ифки)
Здравствуйте! Копирую данные, вставляю в json
Ошибка: Invalid JSON variable
Просто как один из вариантов
а можно получить ид пользователя поставившего лайк в посте?
А что vk_api не используете? Там и токен проще получить...
VK = vk_api.VkApi(login, passw)
VK.auth()
print(VK.token['access_token'])
Да и капчу обработать можно быстро, например ту же cptch
Готовая библиотека конечно хорошо, но мне интересно разбираться в коде самому, пробовать что-то новое.
@@PythonToday Сложно не согласиться ))) Если не трудно, можете оставлять ссылки на pypi.org в телеграме в постах с тегам #tipsandtricks ? Классный формат постов, нравится! Было бы удобно с ходу на pypi заходить!
@@Вячеслав-о2н1э Да, конечно) Спасибо за фидбэк 👍
Сделай видео про вк апи 2024
У меня вопрос, а что делать если у фото нет расширения, а есть только ширина и высота, в этом случае как выбрать фото наилучшего качества?
(Привет из 21 года)
Если вопрос глупый, прошу прощения, я новичок и только начинаю разбираться во всем
Как у фото нет расширения? Оно в base64? Если да, то можно без проблем декодировать в изобрежение. В google "base64 to img python". Но прям сомневаюсь что ты столкнулся с этим. По поводу качества конечно по ширине и высоте проще, мы этим собственно и занимались. В общем не понял вопроса.
@@PythonToday Я имею ввиду что у меня в json файле вообще нет "photo_2560", "photo_1280" и тд.
Вот этих расширений, из-за чего код попросту работает не корректно
Ну так у тебя можно купить рекламу? Просто правда хочется чтобы кто то посмотрел...
Сотрудничество: @web_runner в телеграм
@@PythonToday мне почему то не даёт написать тебе вот мой ID @sokolandrey1234
Список подписчиков группы бы еще собрать
Думаю если API позволяет, соберем. Уже задумал проект по распознованию лиц, точнее по поиску аккаунтов в ВК 👍
Все делаю в точности, почему то считывает данные только с моей стены, группы не читает
В domain точно имя группы передаешь, а не ID? Покажи ссылку по которой запрос формируешь
@@КонстантинСугаков group_name какой, скинь. Попробую и отпишусь
@@PythonToday от group_ name ничего не зависит. Пробовал подставлять разные значения, проверяется наличие и создаётся директория, файл, идёт запись номеров постов в файл, а парсит все равно мою стену. Может имеет значение рабочая среда? Убунту + терминал + sublime text 3. Python 3, все пакеты установлены .
Ну а группу для примера парсил Joomla Russia
@@КонстантинСугаков Скорее всего неверно сформировал запрос на получение токена.
Попробуй заново создать приложение, и использовать эту ссылку для получения токена:
oauth.vk.com/authorize?client_id=СЮДА_ID_СВОЕГО_ПРИЛОЖЕНИЯ&display=page&redirect_uri=oauth.vk.com/blank.html&scope=wall,video,offline&response_type=token&v=5.52
Можно ли прописать токен так, чтобы получить доступ к сообщения пользователям не в друзьях?
Вот ещё способ:
link: str = ''
max_quality: int = 0
for i in post[0]["photo"]:
if re.match("photo_", i) is not None: # Да, я очень люблю регулярки!
current_quality = int(i.split('_')[1])
if current_quality > max_quality:
max_quality = current_quality
link = post[0]["photo"][i]
print(f'quality: {max_quality}, link: {link}')
Когда-нибудь и я познаю регулярки)
Тоже сразу заметил, что вручную набивать разрешения непрактично и теряется универсальность. Оформил как функцию, работает на ура
что не так?
Введите название группы: fitnessed
{"error":{"error_code":5,"error_msg":"User authorization failed: invalid access_token (4).","request_params":[{"key":"domain","value":"fitnessed"},{"key":"count","value":"40"},{"key":"v","value":"5.52"},{"key":"method","value":"wall.get"},{"key":"oauth","value":"1"}]}}
Process finished with exit code 0
В ошибке явно сказано, что с проблемы с токеном
удалось решить ?
у меня такая же фигня , в переменную токен записываю полностью ссылку токен которая сформировалась , что не так не пойму
@@PythonToday чуть по медленее между действиями , чуть помедленнее. Час убил
Мдаа, я отпишусь наверно, потому что я не успеваю смотреть и переварить все информацию. 100 раз пересмотрел понял только 5 %. Очередной раз убеждаюсь лучше искать информацию на иностранной платформе. У тебя вроде понятно, но все ровно не понятно, пробелы остаются
Я второй в списке
Привет, спасибо за твои уроки.
Я тут начал делать небольшие видио вкладываю душу, оцени пожалуйста. Но хочется что ещё кто посмотрел и оценил. У тебя можно купить рекламу или что то вроде того. Мне будет приятно даже если кто нибудь посмотрит моё видио. Надеюсь ответишь🙂
Я начал вести канал, т.к не хватало практики. Если у тебя есть опыт в программировании, есть проекты, обязатально снимай видео и делись опытом. Результат не заставит себя ждать и получишь отклик. Главное не останавливайся, цифровизация и как следствие программирование популярны как никогда.
@@PythonToday можешь посмотреть последнее видио. Дать совет что так что нетак
photo_quality = []
for i in range(0, len(post[0]["photo"]["sizes"])):
photo_quality.append((post[0]["photo"]["sizes"][i]["height"], i))
версия 5.81 там сейчас json по другому структура выглядит, вот алгоритм для поиска наибольшего разрешения.
И вот так выглядит вывод
if len(post) == 1:
post_photo = post[0]["photo"]["sizes"][max(photo_quality)[1]]["url"]
print(post_photo)
else:
for post_item_photo in post:
post_photo = post_item_photo["photo"]["sizes"][max(photo_quality)[1]]["url"]
print(post_photo)