Осуществляем поиск групп вконтакте по ключевому слову
Очень простой но в то же время, иногда полезный скрипт на python для поиска групп Вконтакте по определённому ключевому слову. Например Вы можете собрать список групп в названии которых есть слово «AliExpress» со следующими критериями.
- Можно выбрать, что именно искать, либо «Паблик» или «Группа»
- Должна ли быть возможность оставлять посты в сообществе.
- Формат вывода, либо список ссылок или ID групп.
- Указать минимальное количество подписчиков в группе.
После того, как скрипт завершит поиск групп, результат будет сохранён в той же директории от куда запускался сам скрипт. Результат сохраняется в *.txt файл, если ключевое слово по которому осуществляется поиск «AliExpress» то результат появится в файле «AliExpress.txt»
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
import vk_api import json import time import requests TYPE = 'group' # 'page' Паблик / 'group' Группа (Если нужны паблики то CAN_POST нужно поставить в 0) KEYWORD = 'AliExpress' # Ключевое слово по которому искать сообщества. PEOPLECOUNT = 10000 # Отбирать сообщество, где участников от... CAN_POST = 1 # Возможность оставлять записи на стене сообщества. | 1 - Да. 0 - Нет. FORMAT = 0 # Формат вывода 1 - ID, 0 - адрес вида https://vk.com/group TOKEN = 'Тут Ваш TOKEN' # Если нужны паблики то 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]') |
Для запуска скрипта нужно установить Python модуль vk-api
Помог решить Вашу проблему? Угостить кофе!