Сбор данных с помощью API Вконтакте
Время прочтения: 3 мин.
Так вот, сделав несколько пробных выборок для анализа, мы поняли, что поиск по фамилии и имени дает слишком ненадежные результаты, т.к. даты рождения многих пользователей скрыты, и даже выгрузив все совпадения по ФИ, вы все равно не сможете потом идентифицировать нужные данные.
Важно: мы заметили, что при поиске по ФИ + ДР Вконтакте выдаст подходящих пользователей, даже если их дата рождения скрыта. Это можно было использовать, только нужно обеспечить связь с данными поискового запроса. Для работы с API VK мы решили использовать Python с библиотекой vk_api (установка: pip install vk_api). Итого нам потребуются 2 библиотеки:
import pandas as pd import vk_api
Далее – импорт входных данных в формате ID, Имя, Фамилия, Отчество (можно оставить пустым, так как Вконтакте отчество отсутствует), День рождения, Месяц рождения, Год рождения. Пример: (0,Петр,Петрович,,1,1,1950)
data = pd.read_csv('in.txt', encoding = 'cp1251')
Затем авторизация и получение токена VK:
vk_session = vk_api.VkApi('+79XXXXXXXXXX', 'password') vk_session.auth() vk = vk_session.get_api()
После этого мы можем начинать выполнять запросы к API. Полный перечень методов можно найти на странице vk.com/dev/methods.
Разберем для примера использование метода users.search и сохранение полученных результатов. Основные параметры это q – строка поискового запроса, так же для поиска нам понадобятся birth_day, birth_month, birth_year, count – количество результатов (поставим максимум – 1000), fields – список дополнительных полей, в примере укажем ‘bdate, city’. Результат будет возвращен в виде словаря Python. Разберем подробно:
t={} #создаем словарь для хранения данных, получаемых от API VK for j in range(0, len(data)): #запускаем поиск по массиву #Далее следует обращение к API с нашими параметрами: t[j]=vk.users.search(q = data['N'][j] + ' ' + data['F'][j], birth_day = data['D'][j], \ birth_month = data['M'][j], birth_year = data['Y'][j], count = 1000, fields='bdate, city') for h in (t[j]['items']): #Сохраняем результаты поиска в файл"users. txt" with open('users.txt','a') as f1: f1.write((str(data['id'][j]) + ';' #ID исходный + str(t[j]['count']) + ';' #Количество найденных пользователей + str(h['id']) + ';' #ID пользователя VK + h['last_name'] + ';' #Фамилия + h['first_name'] + ';' #Имя + h.get('bdate','') + ';' #Дата рождения + h.get('city',{}).get('title','') #У города несколько параметров - нам нужно название: title + ';\n').encode('cp1251', 'replace').decode('cp1251'))#Для удаления нестандартных символов, которые могут вызывать ошибки
Далее мы можем в этом же цикле осуществить поиск и сохранение ID друзей пользователя, за это отвечает метод friends.get. Если друзей нет (или скрыты), метод вернет ошибку, поэтому используем try/except:
try: m=vk.friends.get(user_id = str(h['id']), count = 50000) for q in m['items']: #Сохраняем ID друзей в файл "friends.txt" with open('friends. txt','a') as f2: f2.write(str(data['id'][j]) + ';' + str(h['id']) + ';' + str(q) + ';\n') except: #Если друзей нет (или скрыты) пишем в файл 0 для этого ID with open('friends.txt','a') as f2: f2.write(str(data['id'][j]) + ';' + str(h['id']) + ';0;\n')
Если мы хотим выполнить большое количество запросов, нужно добавить паузу между ними, например, команда sleep библиотеки time. Без этого учетная запись VK может быть заблокирована. Экспериментальным путем подобраны значения 9 секунд для поиска без друзей и 5 для поиска с друзьями (меньше, т.к. получение и сохранение списка друзей занимает несколько секунд). Производительность при использовании одной учетной записи Вконтакте составляет 8-10 тыс. пользователей в сутки. Полученные результаты сохраняются в файлы users.txt и friends.txt и могут в дальнейшем быть обработаны в БД или средствами Python.
Модуль «Парсер отзывов из группы ВКонтакте» для OkayCMS
Описание Фото
Описание модуля
Модуль позволяет из конкретной группы vk. com парсить отзывы, но с условием что имеется доступ и права администратора этой группы.
Для корректной работы модуля необходимы ID группы в VK из которой парсим отзывы и ID приложения VK
Далее в разделе «Импорт отзывов с VK» мы можем запустить парсер отзывов
Определенные, неблагоприятные отзывы можно отключить из админки и при последующих парсингах, они так-же будут оставаться выключенными
Фото модуля
Официальный сайт OkayCMS
Стоимость:
0 $
35 $
Парсер отзывов из группы ВКонтакте
− +
Помощь в установке
15 $
Смотреть демо
* Важно! Данный модуль работает корректно с дефолтным шаблоном.
В других шаблонах могут потребоваться изменения в файлах для корректной работы модуля.В таком случае необходимо написать в тех. поддержку с админ панели вашего сайта, данная работа будет оценена отдельно, если не вы оплачивали услугу установки модуля.
Способы оплаты
- Карта Visa/MasterCard
- Приват 24
- Оплата на счёт юр. лица Украины
Подписка на товары, которых нет в наличии
2
Остались вопросы?
Regex101: библиотека Regex
JavaScript
RTTU Pharsing
REGEX для RTTU Pharsing
Представлено CVIKL Dubravko — 19 минут назад
PCRE2
Gene ID GENE ATTRIBUTE
Прислал аноним — 3 часа назад
python
Проверка римских цифр
Используется для проверки правильности римских цифр
Прислал JNg — 7 часов назад
python
Индивидуальный анализ журнала NGINX
Разбивает журналы NGINX на именованные группы
Прислано Simon — 19 часов назад
pcre2
Все версии до 3.
1.17Должны отображаться все семантические версии до 3.1.7, но не
Прислал аноним — день назад
pcre2
соответствует идентификатору URL-адреса linkedin
соответствует идентификатору URL-адреса LinkedIn
Прислал goldentwon — день назад
python
s0005
IШРИНКИТА VISUS žodžius, Kurie Yra IШ -визад -диджидж Райджии (Pvm, Swift, Habalt22)
, представленные Anonymous — Day
Python
LieTuSshkas Tekstas
. turi bent vieną didžiąją raidę ar skaičių, bet gali turėti daugiau mažųjų raidžių ar skaičių, ir gali būti atskirtos tarpo simboliu.
Прислал аноним — день назад
pcre2
Заголовки
Заголовки
Прислал аноним — день назад
pcre2
Išrinkite visus žodžius, prasideančius viena didžiąja raide.
Buveinės adresas: Konstitucijos pr. 20А, 03502 Вильнюс Телефон: 1884 арба +370 5 268 4444 (частные клиенты) 1633 arba +370 5 268 4422 (Verslo clientams) Факс: (8 5) 258 2700 Эл. paštas: [email protected]…
Прислал аноним — день назад
java
Поиск электронной почты
Совпадает с действительными адресами электронной почты.
Прислано анонимно — 2 дня назад
pcre2
Пример 1
Пример
Прислано анонимно — 2 дня назад
javascript
Финские SSN (новый промежуточный номер 2023, который поддерживает обновление SSN 2025)
0 были добавлены 01.01.2023. Источник для новых промежуточных символов: https://dvv.fi/hetu-uudistus (на финском языке) https://dvv.fi/en/reform-of-personal-identity-code (на английском языке)
Представлено mpeltola — 2 дня назад
javascript
Force email address
Force email address
Submitted by anonymous — 2 days ago
golang
pxc plcnext
plcnext version strings
Submitted by anonymous — 2 days ago
python
10. *.*.X IP-адрес
Выражение, соответствующее 10. \.\.X IP-адресам. Примеры 10.10.10.2 10.0.0.5…
Прислал meowmeow — 2 дня назад
pcre
exp1
asdf
Прислано анонимом — 3 дня назад
pcre2
Описание NRAudit
Извлекает глаголы действия, электронные письма и типы пользователей в строке
выбор только текста после последнего дефиса в строке
Прислал Dave Curtis — 5 дней назад
pcre2
T1
Reguljärt uttryck for att matcha T1
Представлено Jonas Thor — 5 дней назад
REGEX101: библиотека REGEX
JavaScript
RTTU Pharsing
REGEX для RTTU Pharsing
Представлен CVIKL DubRavko -19 0003
.
Как следует из названия, да…
Прислал аноним — 3 часа назад
python
Проверка римских цифр
Используется для проверки правильности римских цифр
Прислано JNg — 7 часов назад
python
Индивидуальный анализ журнала NGINX
Разбивает журналы NGINX на именованные группы
Прислано Simon — 19 часов назад все семантические версии до версии 3. 1.17, но не включая ее0003
Python
Lietuviushkas Tekstas
IШринкет Визус žodžius, Kurie Yra IШ -визад -диджидждж Райджи (Pvm, Swift, Habalt22)
visshashshis
. , kurios prasideda viena didžiąja raide, turi bent vieną didžiąją raidę ar skaičių, bet gali turėti daugiau mažųjų raidųių ar skaičių, ir gali būti atskirtos tarpo simboliu.Прислал аноним — день назад
pcre2
Заголовки
Заголовки
Прислал аноним — 1 день назад
Buveinės adresas: Konstitucijos pr. 20А, 03502 Вильнюс Телефон: 1884 арба +370 5 268 4444 (частные клиенты) 1633 arba +370 5 268 4422 (Verslo clientams) Факс: (8 5) 258 2700 Эл. paštas: [email protected]…
Прислал аноним — день назад
java
Поиск электронной почты
Совпадает с действительными адресами электронной почты. Пример 1 были добавлены 01.01.2023. Источник для новых промежуточных символов: https://dvv.fi/hetu-uudistus (на финском языке) https://dvv.fi/en/reform-of-personal-identity-code (на английском языке)
Представлено Mpeltola — 2 дня назад
JavaScript
Адрес электронной почты Force
Форма Электронная почта
Представлено Anonymous — 2 дня назад
Golang
Pxc Plcnext
Plcnext Strings
. Посчитанные. дней назад
python
10.*.*.X IP-адрес
Выражение, соответствующее 10.\.\.X IP-адресам. Примеры 10.10.10.2 10.0.0.5…
Прислал meowmeow — 2 дня назад
PCRE
EXP1
ASDF
, отправленная Anonymous — 3 дня назад
PCRE2
Описание NRAUDIT
Вытягивает глаголы действия, электронные письма и пользовательские сепсы
. Представляемые на Annominy — 5 дней назад
.