Загрузка...

Сбор групп или пабликов по ключу на python3

Тема в разделе Python создана пользователем setcode 1 дек 2019. (поднята 10 май 2019) 622 просмотра

  1. setcode
    setcode Автор темы 1 дек 2019 27 10 май 2019
    Привет! Скрипт выдернит из первой 1000 паблики или группы по ключу. К примеру, если нужны сообщества в названии которых есть слово "instagram" см скрин
    Настройки такие. Должно быть все понятно.

    Код

    TYPE = 'group' # 'page' Паблик / 'group' Группа (Если нужны паблики то CAN_POST нужно поставить в 0)
    KEYWORD = 'instagram' # Ключевое слово по которому искать сообщества.
    PEOPLECOUNT = 1000 # Отбирать сообщество, где участников от...
    CAN_POST = 1 # Возможность оставлять записи на стене сообщества. | 1 - Да. 0 - Нет.
    FORMAT = 0 # Формат вывода 1 - ID, 0 - адрес вида https://vk.com/group

    Смотрите подробнее тут

    Можно собрать группы, на которой можно постить, и заспамить их нахуй (Уже другим софтом или скриптом)

    [IMG]

    Код

    import vk_api
    import json
    import time
    import requests

    TYPE = 'group' # 'page' Паблик / 'group' Группа (Если нужны паблики то CAN_POST нужно поставить в 0)
    KEYWORD = 'instagram' # Ключевое слово по которому искать сообщества.
    PEOPLECOUNT = 1000 # Отбирать сообщество, где участников от...
    CAN_POST = 1 # Возможность оставлять записи на стене сообщества. | 1 - Да. 0 - Нет.
    FORMAT = 0 # Формат вывода 1 - ID, 0 - адрес вида https://vk.com/group
    TOKEN = 'TOKEN VK'

    # Если нужны паблики то CAN_POST нужно поставить в 0
    if TYPE == 'page':
    CAN_POST = 0

    def GETGroup():
    VK = vk_api.VkApi(token=TOKEN)
    VK = VK.get_api()
    tools = vk_api.VkTools(VK)

    WallGroup = tools.get_all('groups.search', 1000, {
    'q':KEYWORD,
    'type':TYPE
    })

    GroupID = []
    GroupII = []
    GroupIN = []

    for x in range(WallGroup['count']):
    GroupID.append(WallGroup['items'][x]['id'])

    GroupII.append(GroupID[:len(GroupID)//2])
    GroupII.append(GroupID[len(GroupID)//2:])

    for info in range(2):
    GroupIN.append(VK.groups.getById(group_ids=GroupII[info], fields='can_post,members_count'))
    GroupIN = GroupIN[0] + GroupIN[1]

    Members_Count = 0
    Group_Count = 1

    F = open(KEYWORD + '.txt', 'a')
    for get in range(len(GroupIN)):
    try:
    if GroupIN[get]['is_closed'] == 0 and GroupIN[get]['members_count'] > PEOPLECOUNT:
    if GroupIN[get]['can_post'] == CAN_POST:
    Group_Count = Group_Count + 1
    print('[' + str(Group_Count) + '] ID:',GroupIN[get]['id'] , end=' | ')
    print('Участников:', GroupIN[get]['members_count'], end=' | ')
    print(GroupIN[get]['name'])
    Members_Count = Members_Count + GroupIN[get]['members_count']

    if FORMAT == 1:
    F.write(str(GroupIN[get]['id'])+ '\n')
    else:
    F.write('https://vk.com/' + str(GroupIN[get]['screen_name']) + '\n')
    except:
    pass
    F.close()

    print('=' * 80)
    print('Найдено сообществ: ' + str(Group_Count) + ' из 1000')
    print('=' * 80)

    print(' > Поисковой запрос: ' + str(KEYWORD))
    print(' > Суммарное количество участников: ' + str(Members_Count))
    print(' > В каждом сообществе подписчиков больше чем: ' + str(PEOPLECOUNT))
    if CAN_POST == 1:
    print(' > Возможность оставлять записи на стене: Да')
    else:
    print(' > Возможность оставлять записи на стене: Нет')
    print(' > Результат сохранён в файл: ' + str(KEYWORD) + '.txt')
    print('=' * 80)

    input('Enter close...')

    if __name__ == '__main__':
    try:
    GETGroup()
    except:
    print('[ERROR]')

     
Загрузка...
Top