[python] Постер в группу вк

Тема в разделе "Perl, Python, Ruby", создана пользователем r00t, 26 авг 2015.

  1. r00t

    r00t

    Регистр.:
    30 июл 2006
    Сообщения:
    192
    Симпатии:
    65
    Скрипт для отложенных постов в вк. Я пилю в группу только картинки без текста, поэтому функционала хватает.
    Создайте папку upload рядом со скриптом и туда заливайте картинки.

    Из минусов: полное отсутствие обработки исключений возникающих в процессе работы

    Python 3.4
    Зависимости:
    pip3 install vk==2.0-beta
    или
    C:\Python34\python.exe -m pip install vk==2.0-beta

    Ограничения вк 3 запроса в секунду, в случае проблем меняем значение в time.sleep(1)

    Код:
    # -*- coding: utf-8 -*-
    
    import os
    import vk
    import requests
    import json
    import time
    
    
    UP_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'upload')
    group_id = '-' #ID группы со знаком минус в начале
    vkapi = vk.OAuthAPI(app_id='', user_login='', user_password='',
                        scope='offline,photos,wall,groups') # ID Standalone приложения, логин и пароль вк
    
    
    def wall_post(filename, time_post):
        img = {'photo': (filename, open(UP_DIR + '\\' + filename, 'rb'))}
        up_srv = vkapi.photos.getWallUploadServer(group_id=group_id[1:])
        up_file = requests.post(up_srv['upload_url'], files=img)
        result = json.loads(up_file.text)
        save_file = vkapi.photos.saveWallPhoto(server=result['server'], photo=result['photo'], hash=result['hash'],
                                               group_id=group_id[1:])
        attachments = 'photo' + str(save_file[0]['owner_id']) + '_' + str(save_file[0]['id'])
        post = vkapi.wall.post(owner_id=group_id, from_group='1', attachments=attachments, publish_date=time_post)
        return post
    
    
    time_post = int('') # Время первой публикации в формате unix timestamp
    files = os.listdir(UP_DIR)
    for file in files:
        poster = wall_post(file, time_post)
        files.remove(file)
        time.sleep(1)
        time_post += 3 * 60 * 60 # Интервал для публикации записей. В данном случае 3 часа
    Надеюсь кому-то будет полезно.
     
    Последнее редактирование: 26 авг 2015
    kobalt7 и latteo нравится это.
  2. Ko3b1Pb

    Ko3b1Pb Создатель

    Регистр.:
    24 авг 2015
    Сообщения:
    21
    Симпатии:
    14
    привет, мне скинули файлы сайта сделаный на django, надо загрузить на новый хост, можете помочь? с оплатой разберёмся
     
  3. Hutton

    Hutton Создатель

    Регистр.:
    28 янв 2016
    Сообщения:
    48
    Симпатии:
    33
    Я могу помочь напиши мне в личку.
     
  4. _kiano_

    _kiano_ Создатель

    Регистр.:
    25 мар 2015
    Сообщения:
    11
    Симпатии:
    1
    Есть спамер ВК написанный на питоне. Но что то он не отправляет личные сообщения. Кто то может помочь с правкой ? Ну и себе заодно копию оставит )
     
  5. Pohmeliy

    Pohmeliy Постоялец

    Регистр.:
    18 мар 2013
    Сообщения:
    57
    Симпатии:
    22
    Он API ВК использует?
    Какая версия питона?
     
  6. _kiano_

    _kiano_ Создатель

    Регистр.:
    25 мар 2015
    Сообщения:
    11
    Симпатии:
    1
    Да, использует API вк.
     
  7. Kurachek

    Kurachek Создатель

    Регистр.:
    28 окт 2015
    Сообщения:
    10
    Симпатии:
    1
    Взять проксей :) добавить gevent ... :)