Hallo Habr.
Im
vorherigen Teil wurden die Nachrichten der Benutzer dieser Website analysiert, was zu einer lebhaften Diskussion über das Thema verschiedener Parameter (Anzahl der Nachrichten, Bewertung, „Karma“ usw.) führte. Solche Fragen haben sich genug angesammelt, um den zweiten Teil zu machen.

Diejenigen, die interessiert sind, wie lang ist die größte Diskussion in den Kommentaren für dieses Jahr, was kann das maximale und minimale „Karma“ für Benutzer sein und andere Statistiken, bitte, unter Kat.
Datenerfassung
Zunächst musste ich den Parser ergänzen, damit er mehr Daten sammelt. Informationen über die Bewertung von Nachrichten und die Position von Nachrichten im Thread sind bereits in HTML vorhanden. Um jedoch das „Karma“ des Benutzers zu erhalten, musste eine zusätzliche Anfrage gestellt werden. Natürlich wurden die Werte zwischengespeichert, damit derselbe Benutzer nicht viele Male Daten anfordert.
Der aktualisierte Datensatz sieht nun folgendermaßen aus (Benutzernamen entfernt):
https://habr.com/ru/post/322900/,comment_19707920,comment_19706258,UserXXXX,karma:112.2,answers:1,2019-02-04 20:26:00,rating:1,up:1,down:0, ?
https://habr.com/ru/company/mailru/blog/351212/,comment_19794710,comment_19794310,UserXXXX,karma:-10.0,answers:1,2019-02-23 18:16:00,rating:3,up:5,down:-2,
...
Aus zusätzlichen Feldern wurden das Antwortfeld (Anzahl der Antworten), das Karma des Benutzers sowie positive und negative Bewertungen hinzugefügt.
Die Funktion, "Karma" durch den Spitznamen des Benutzers zu erhalten, sieht beispielsweise so aus:
def get_karma(user: str): data_html = get_as_str("https://habr.com/ru/users/%s/" % user) karma = data_html.find_between('info/help/karma/', '</a>').find_between('stacked-counter__value', '/div>').find_between('>', '<').replace(",", ".").replace('–', '-') return float(karma) if len(karma) > 0 else 0.0
Wie Sie sehen können, ist alles ziemlich einfach, keine Raketenwissenschaft. Wir sollten uns auch bei den Habr-Programmierern für den HTML-Code bedanken, der klar und bequem zum Parsen ist.
Die Größe der resultierenden CSV-Datei für dieses Jahr 2019 betrug 334 MB. Sie können die Analyse starten. Bevor ich anfange, möchte ich Sie daran erinnern, dass alle veröffentlichten Daten offen und öffentlich sind und auch von Suchmaschinen indiziert werden. Ich habe keine Insiderinformationen, alles ist den Seiten dieser Seite entnommen.
Karma
Wie der vorige Teil gezeigt hat, sind „karmische Fragen“ von größtem Interesse. Beginnen wir also damit. Wie Sie wissen, ist „Karma“ ein Attribut jedes aktiven Benutzers dieser Website. Die Teilnehmer können wählen, ob sie es erhöhen oder verringern möchten. Ehrlich gesagt habe ich nie Fragen dazu gestellt, wie es wirklich funktioniert und welche Einschränkungen es mit sich bringt. Daher gebe ich die Daten nur ohne besondere Kommentare an.
Insgesamt sind auf der Website zum Zeitpunkt der Erfassung der Bewertung
25.109 Benutzer diejenigen, die mindestens einmal mindestens einen Kommentar hinterlassen haben. Von diesen haben 9973 Benutzer (39%)
kein Karma . 12.346 Benutzer (49%) haben
positives Karma , von denen 5384 Benutzer (21%)
Karma <= 4 und
> 40 = Karma haben (diese Stufe ermöglicht es Ihnen, am „Belohnungsprogramm“ teilzunehmen und die Zahlung für Artikel zu erhalten), haben 1.522 Benutzer (6) %). 2790 Benutzer (11%) haben
negatives Karma .
Grafisch sieht der Hauptteil der Distribution folgendermaßen aus:

Vertikal - die Anzahl der Benutzer mit diesem Karma. Das Diagramm wird oben als abgeschnitten Benutzer mit null Karma maximal (9973 gegen 2570 mit "Karma" 1). Es gibt nicht so wenige "aufgeschlossene" Benutzer, aber dennoch wird der Zeitplan auf ein Plus verschoben, und es gefällt. Wie hoch und niedrig kann Karma sein?
Die Top 10 Karma-Bewertungen werden von
Zelenyikot (+1509,2),
Milfgard (+1471,0),
m1rko (+1039,5),
PatientZero (+986,0),
Boomburum (+881,9),
ValdikSS (+873,5),
Alizar (+837,5),
Tangro belegt (+802,5),
lozga (+764,7) und
DIHALT (696,1). Ich denke, man kann ihnen gratulieren - gute Arbeit, Leute :) Wenn ich jemanden vermisst habe - schreibe in private Nachrichten, ich werde es manuell hinzufügen.
Übrigens, wie sich herausstellte, gab es einen Fehler in meiner Karmareiting-Berechnungsfunktion - sie verarbeitet Werte über 1000 nicht korrekt (Habr fügt der Zahl ein Leerzeichen hinzu, das wusste ich nicht), aber die Situation ist selten und ich habe es nicht sofort bemerkt.
Sie nehmen Antitope-10 durch Karma ... nein, ich werde wahrscheinlich nicht ihre Spitznamen nennen, um solchen Nutzern keine "Werbung" zu machen, die interessiert ist und Daten aus einem Screenshot unter einem Spoiler eintreiben kann. Natürlich sagt das negative Karma auf der Website nur, dass eine Person eine unpopuläre Meinung auf dieser Website äußert und nichts über ihre persönlichen Qualitäten sagt, so dass diejenigen, die in das „Antitop“ fallen, gebeten werden, nicht beleidigt zu werden.
Nachrichten
In den Nachrichten finden Sie auch viele interessante Dinge.
Die Top 5-Nachrichten sind
26 ,
17 ,
16 ,
15 bzw.
14 KB lang.
Es ist interessant, die Verteilung in grafischer Form zu betrachten:

Wie Sie sehen können, fällt der Peak auf Nachrichten mit etwa 100 Zeichen.
Bewertung
Die am
positivsten bewerteten Nachrichten:
+218 ,
+144 ,
+141 ,
+133 und
+124 .
Die am
negativsten bewerteten Nachrichten sind
-248 ,
-170 ,
-163 ,
-131 und
-114 .
Es ist interessant, dass die Verteilung der Anzahl der Nachrichten gemäß der Bewertung ungefähr der Verteilung von „Karma“ ähnelt - es gibt sowohl positive als auch negative Bewertungen von Nachrichten, aber es gibt mehr „positive“. Was sich wiederum nur freuen kann.
Diskussionen
Die nächste interessante Frage war, den längsten Thread unter den Nachrichten zu finden. Es stellte sich als recht einfach heraus, dies zu tun - jede Nachricht in HTML hat eine eindeutige Kennung, es gibt auch einen Parameter data-parent_id, der Rest ist, wie sie sagen, eine technische Angelegenheit.
Die längste Diskussion im Jahr 2019:
619 Antworten ,
618 Antworten ,
614 Antworten ,
556 Antworten und
553 Antworten . Interessanterweise wurden 4 von 5 Nachrichten, die diese Threads verursacht haben, von Benutzern mit einem Karma von weniger als -20 geschrieben.
Gruppieren Sie die Kommentare nach der Anzahl der Antworten auf sie:

Vertikal - die Anzahl der Beiträge für dieses Jahr. Die meisten Kommentare (41% oder 183000) blieben ohne Antwort, 75.000 Kommentare haben 1 Antwort, eine weitere Verteilung ist auf dem Bild zu sehen.
Fazit
Hiermit werde ich das Thema „Habrastatistik“ bis Januar beenden - Ende des Jahres wird die endgültige Bewertung der besten Artikel des Jahres 2019 veröffentlicht. Nun, es kann einige andere interessante Muster geben.
Ich hoffe es war interessant. Wenn ich jemanden vergessen habe - schreibe, richtig.