Programm zur Suche nach gleichgesinnten VKontakte [Open Source]

VK bietet sehr gute Tools für das Targeting von Werbung, mit denen Sie Personen mit dem richtigen Geschlecht, Alter, Sozial- und Familienstand finden, die bestimmten Gruppen zugeordnet sind usw. Dies ist nur die Spitze des Eisbergs. Wenn Sie sich mit den in sozialen Netzwerken verfügbaren Big Data befassen, können Sie sich über die Person informieren fast mehr als er über sich selbst weiß.

Gleichzeitig gibt es praktisch keinen Mechanismus, um neue Freunde zu finden, was im Kontext eines sozialen Netzwerks eher ironisch ist. Andererseits ist es verständlich, wenn etwas kein Einkommen generiert, bedeutet dies, dass es sich höchstwahrscheinlich nicht entwickeln wird. Für die Datierung hat VK kürzlich die Anwendung gestartet, aber meines Wissens handelt es sich tatsächlich um einen Tinder-Klon, und es werden überhaupt keine Daten aus Profilen abgerufen, auch keine banale Einstellung zu Rauchen oder Alkohol - vom sozialen Netzwerk gibt es nur eine Autorisierung.

Es wurde für uns interessant, wie realistisch diese Situation mithilfe der VK-API behoben werden kann, und hier ist, was daraus wurde:

Gleichgesinntes Band auf Ihrem Startbildschirm

Wie es war?


Für den Anfang lohnt es sich also, den Ausgangszustand zu malen. Die einzig angemessene Strategie, die Ihnen in den Sinn kommt, besteht darin, eine Community zu finden, die Ihnen in Bezug auf Weltanschauungs- / Ästhetik- / Hobbyindikatoren am nächsten steht, und eine Suche nach Abonnenten zu eröffnen. Führen Sie einige Filter ein, zum Beispiel das Alter, und schauen Sie sich dann alle in einer Reihe an.

Diese Option hat jedoch die folgenden Nachteile:

  • Viele verlassene, geschlossene, gefälschte Profile
  • Die Suche nach Lebensfeldern ist unterbrochen
  • Es gibt keine Mehrfachauswahl bei der Suche, dh beispielsweise eine negative und scharf negative Einstellung zu Alkohol - Sie können nicht wählen
  • Sie müssen ständig zwischen den Browser-Registerkarten wechseln
  • Es ist notwendig, manuell zu bewerten, an welcher Stelle der Benutzer in der Liste die betreffende Öffentlichkeit hat, wenn er wirklich interessiert ist
  • Es ist notwendig, manuell zu bewerten, was der Benutzer noch abonniert hat, ob andere für uns interessante Personen vorhanden sind oder etwas inakzeptables.
  • Sie können die angezeigten Profile nicht markieren, wenn Sie nicht alle gleichzeitig gesehen haben.

Glücklicherweise ist fast alles lösbar, und bei 100 Millionen aktiven Benutzern pro Monat haben selbst Introvertierte mit sehr spezifischen Vorlieben die Möglichkeit, Gleichgesinnte zu finden.



Wie ist das?


Wir haben uns entschlossen, ein Projekt zu erstellen, das auf der Analyse von Abonnements basiert und über eine praktische Benutzeroberfläche und Automatisierungstools verfügt. Im vollautomatischen Modus sieht der Algorithmus ungefähr so ​​aus:

  1. Benutzer meldet sich über VK an
  2. Laden Sie die Liste seiner Abonnements herunter (weniger als 1 Million)
  3. Wir bewerten jeden von ihnen gemäß der Position in der Liste.
  4. Laden Sie N Abonnenten aus jeder seiner Gruppen herunter (N hängt davon ab, wie viel Zeit er angegeben hat)
  5. Wir finden in der Datenbank Benutzer, die mehrere Gruppen abonniert haben und deren Bewertung berechnen
  6. Laden Sie für die Personen mit der höchsten Bewertung ihre Abonnementlisten herunter, um sicherzustellen, dass die gefundenen Gruppen nicht an der Stelle von 2048 stehen, um ihre Top-Interessen aufzubauen

Als nächstes wechselt das Programm in den manuellen Modus, in dem Sie zusätzlich unerwünschte Gruppen angeben, Noten ändern, Gruppen hinzufügen können, die nicht abonniert sind, aber auch interessante Personen - alles wird neu berechnet, die Oberseite wird neu erstellt. Es gibt auch einen vollständigen Modus, mit dem einzelne kleine Gruppen analysiert werden können. Darin wird die Datenbank ausschließlich durch Abrufen von Daten von jedem Benutzer gebildet. Es ist nicht erforderlich, alle Gruppen in der Liste herunterzuladen.




Über den Quellcode


Wir haben beschlossen, die Quelle zu öffnen, damit jeder (der C ++ kennt, huh) auch mit den Parametern experimentieren kann, die nicht in den Einstellungen vorgenommen wurden. Nun, niemand befürchtete, dass seine Seite den Bot-Treibern in die Sklaverei versetzt und die Daten im Darknet verkauft würden.

Einige Entwickler öffnen den Code, um zu prahlen - sehen Sie, wie ich kann. Das ist nicht der Fall. Das Projekt wurde ohne klare technische Spezifikation mit ständig wechselnden Anforderungen entwickelt, und es kann hier als Klasse keine gute Architektur geben - selbst die flexibelste biegt sich meistens überhaupt nicht dahin, wo sie sein sollte. Nachdem das Projekt abgeschlossen ist und die Anforderungen klar sind, müssen wir normalerweise ein sehr umfangreiches Refactoring durchführen, aber in diesem Fall haben wir beschlossen, es zu verschieben.

Erstens ist das Programm angesichts der jüngsten Ereignisse besonders relevant geworden, und es wäre dumm, die Veröffentlichung um einen weiteren Monat zu verschieben. Plötzlich ist jemand in Quarantäne besonders einsam, man kann Freunde im Internet finden.

Zweitens ist unklar, ob sich überhaupt jemand für dieses Programm interessiert, und wenn nicht, macht es auch keinen Sinn, Zeit damit zu verbringen, den Code zu verbessern, da keine Unterstützung angenommen wird. Für technische Schulden und Kürzungen sind wir also auf dem Laufenden.

Es war auch notwendig, andere Verbesserungen zu verschieben, z. B. die Arbeit durch VK-Verfahren zu beschleunigen oder die Position der Gruppe in der Benutzerliste zu berücksichtigen, um den Beitrag geringer Gruppen zu verringern. Eine frühere Version und eine größere Stabilität waren wichtiger.

System Anforderungen


Monitor von 1366 x 768, FullHD empfohlen. SSD wird auch nicht überflüssig.

Die Basen wurden nicht für mehr als 5 Millionen getestet, nachdem 10 starke Bremsen sicherlich beginnen werden. Sie können ziemlich schnell zu einem leistungsstärkeren DBMS wechseln (Qt-Abstraktionen erlauben dies), aber bisher scheint dies unpraktisch, da Multimillionen-Dollar-Öffentlichkeiten wenig über Abonnenten zu sagen haben und so viele Menschen keine Nische sein können.

Quellen hier . Binärdateien für Windows und Linux .

PS Ich habe Gedanken darüber, wie VK die Situation auf seiner Seite verbessern könnte, aber dies ist ein Thema für einen separaten Artikel.

PPS Bei vielen IT-Publishern (einschließlich Habr) sind Abonnentenlisten geschlossen, und Sie können diese nicht berücksichtigen.

All Articles