Ich bin gerade dabei mit einem Bot das gesammte VZ (StudiVZ, MeinVZ) zu crawlen und alle Profildaten und Bilder abzuspeichern. Entwickelt habe ich den Bot eben mal in PHP, JS und AJAX. Darüber hinaus werden mit PHP verschiedene Shell Scripte aufgerufen.
In nur knapp 4 Stunden Crawlen hat der Bot bereits __über__ 48000 Profile besucht und die Daten gespeichert. Es haben sich bereits knapp 3,8GB! an Profilbildern angehäuft
Ein Video vom Bot gibts unter “read more..”
Leider ist der Bot noch etwas verbuggt und ruft Profile noch doppelt auf – das ist durchaus ein Problem..
Eine Datenbank wo pro Sekunde über 300 ProfilIDs reinflattern nach bereits vorhandenen IDs zu durchsuchen vor dem reinschreiben ist extrem Speicher- und CPUlastig. Mal schauen ob mir hierfür noch eine Lösung einfällt.
Das Prinzip vom Bot ist releativ einfach erklärt:
Gestartet wird mit einem Hauptprofil. In diesem Hauptprofil durchsucht der Bot die Freundesliste und speichert alle ProfilIDs der Freunde ab. Dann besucht er wiederrum die Profile der Freunde und macht hier wieder das selbe. Mal schauen wieviele Profile ich zusammen bekomme bis das Bot Profil im sVZ gesperrt wird.
Gespeichert werden folgende Daten:
Profilbild, Vor und Nachname, Geschlecht, Beziehungstatus, ProfilID, GebDatum, Wohnort bzw. Uni, mit welchen Freunden der Benutzer verknüpft ist sowie weitere Daten..
Ach, und die Captchas die hin und wieder mal abgefragt werden crackt der Bot auch alleine – die sind eh sehr sehr einfach auszulesen
Edit:
Da mich releativ viele anschreiben und wissen möchten ob der Bot zu verkaufen ist: Nein ist er zz. noch nicht. Später vll. mal wenn ich ihn komplett fertig habe.
Zu den vielen Anfragen wie das ganze genau abläuft:
PHP spielt dem StudiVZ vor, es sei ein ganz normaler Browser (Opera). So, wenn jetzt ein Profil aufgerufen wird lass ich als erstes über wget (Linux Shell Command) die komplette Seite gerendert auf meinem Server abspeichern unter der BenutzerID. Jetzt kommt wieder PHP zum Einsatz. Ich hab mir verschiedene Punkte gesetzt wo PHP anfangen soll einen Teil rauszucutten und wo aufhören. Alles, was zwischen diesen Punkten ist wird abgespeichert. Natürlich kommen pro Profil mehrere solcher Punkte zum Einsatz. Beispiel:
<dt>Name:</dt><dd>
Max Mustermann
</dd><dt>Verzeichnis:</dt>
Den oberen und unteren Code suche ich im Dokument. Alles was dazwischen steht ist natürlich der Name der Person.
Genial, Hut ab.
Nicht übel. Hast du mit den Daten was besonderes vor oder soll es nurmal ein Schreckschuss für die werden, die zu freizügig mit ihren Daten umgehen?
Hi,
nettes Projekt. Quasi ein Webcrawler der nicht das komplette Web sndern nur aufs StudiVZ spezilaisiert ist. Geile Sache… die Datenschutzleute werden jezt angst bekommen^^
Schon daran gedacht, das im Cluster zu machen?
Ich bin erstaunt ^^.
Ich glaube ich muss mich doch wieder mit PHP beschäftigen.
Wusste nicht das damit soetwas möglich ist
Respekt!
Ich bin beeindruckt