Загрузка...

Спамер по группам | Python, VK_Api

Тема в разделе Python создана пользователем la4zen 7 июн 2020. 322 просмотра

  1. la4zen
    la4zen Автор темы 7 июн 2020 7 24 дек 2019
    Сам пользуюсь, создавал для своего кореша в целях рекламы его продукта, и это работает. На обработку всех исключений времени не хватило, да и надобности не видел. Нужно будет - доработаете
    Скрипт берет акки на вход, ищет группы по ключевым словам и пишет под последний пост в комменты (если они не закрыты и если этот пост не закреп)

    Код

    __author__ = 'la4z'
    delay = 15 # Задержка перед отправкой

    import vk_api, os
    from time import strftime, sleep
    from sys import exit
    from random import choice
    import numpy as np

    def cout(text:str):
    print('{} {}'.format(strftime('[%H:%M:%S]'), text))

    def update_token(token):
    global tokens
    if token in tokens:
    tokens.remove(token)
    while True:
    if len(tokens) == 0:
    cout("len(tokens) == 0 | Exit.")
    exit()
    else:
    token = choice(tokens)
    try:
    vks = vk_api.VkApi(token=token)
    vk = vks.get_api()
    vk.users.get()
    break
    except:
    tokens.remove(token)
    return vk

    def get_accounts():
    if os.path.exists('accounts.txt'):
    with open('accounts.txt') as file:
    accs = file.read().split('\n')
    if '' in accs:
    accs.remove('')
    if len(accs) == 0:
    cout('len(accs) == 0 | Exit.')
    exit()
    else:
    cout('Loaded {} accounts.'.format(len(accs)))
    return accs
    else:
    with open('accounts.txt', 'w') as file:
    file.write("")
    cout('File "accounts.txt" not founded | Exit.')
    exit()

    accs = get_accounts()
    cout("Checking validation...")
    tokens = list()
    for acc in accs:
    if ':' in acc:
    a = acc.split(":")
    vks = vk_api.VkApi(a[0], a[1])
    try:
    vks.auth()
    vk = vks.get_api()
    tokens.append(vks.token['access_token'])
    user = vk.users.get()[0]
    cout('Authorized : {} {} | Id : {}'.format(user['first_name'], user['last_name'], user['id']))
    except Exception as e:
    cout(str(e))
    else:
    vks = vk_api.VkApi(token=acc)
    try:
    vk = vks.get_api()
    user = vk.users.get()[0]
    tokens.append(vks.token['access_token'])
    cout('Authorized : {} {} | Id : {}'.format(user['first_name'], user['last_name'], user['id']))
    except Exception as e:
    cout(str(e))

    cout('Working tokens : {}'.format(len(tokens)))

    if len(tokens) == 0:
    cout('0 worked tokens. | Exit.')
    exit()
    cout('Starting threads.')
    # Main function #
    message = input('Please, write your message for comments. #:') # For message
    q = input('Please, enter your search request for groups. (,) #: ').split(",") # Query

    token = choice(tokens)
    vks = vk_api.VkApi(token=token)
    vk = vks.get_api()
    user = vk.users.get()[0]
    groups = list()

    for group_name in q:
    groups = np.append(groups, vk.groups.search(q=group_name, count=200)['items'])

    for group in groups:
    try:
    if not bool(vk.groups.getById(group_id=group['id'])[0]['is_closed']):
    posts = vk.wall.get(owner_id=-group['id'], count=2)['items']
    if bool(posts[0].get("is_pinned")):
    post = posts[0]
    else:
    post = posts[1]
    if bool(post['comments']['can_post']):
    vk.wall.createComment(owner_id=-group['id'], post_id=post['id'], message=message)
    cout('Group id : {} | Message sended'.format(group['id']))
    sleep(delay)

    except Exception as e:
    print(e)
    vk = update_token(token)
    cout("End script")
    Наговнокодил так как срал на оптимизацию, лиж бы работало.
    Скрипт создаёт файл accounts.txt рядом с собой, в него можно заливать либо акки в формате лог:пасс либо токены.
    Ключевые слова для поиска групп можно вставлять разные через запятую. Count поиска изменяйте под себя
    Вроде бы всё, в будущем слеплю ещё подобных скриптов
     
  2. Lovix_inactive410729
    говнокод - наше все
     
    1. la4zen Автор темы
  3. sesu
    sesu 7 июн 2020 Ты не умеешь писать код 114 17 ноя 2019
    cout))) Существует давно умная система логгирования, loguru
     
    1. la4zen Автор темы
      sesu, ой да мне ваще пахуям)
    2. setcode
      la4zen, так же смотрю на эту жизнь. Работает и похуй на все и как правило стабильность работы скрипта с таким отношением получается куда лучше неже если сидеть задрачиваться ))))
Top
Загрузка...