ProHoster > Blog > Internetnachrichten > Habrastatistik: Erkundung der am häufigsten und am wenigsten besuchten Bereiche der Website
Habrastatistik: Erkundung der am häufigsten und am wenigsten besuchten Bereiche der Website
Hallo Habr.
В vorherigen Abschnitt Der Verkehr von Habr wurde anhand der Hauptparameter analysiert – der Anzahl der Artikel, deren Aufrufe und Bewertungen. Die Frage nach der Beliebtheit der Seitenabschnitte blieb jedoch ungeklärt. Es wurde interessant, dies genauer zu betrachten und die beliebtesten und unbeliebtesten Hubs zu finden. Abschließend werde ich den Geektimes-Effekt genauer betrachten und mit einer neuen Auswahl der besten Artikel auf Basis neuer Rankings abschließen.
Für diejenigen, die sich für das Geschehene interessieren: Die Fortsetzung ist unter Verschluss.
Ich möchte Sie noch einmal daran erinnern, dass die Statistiken und Bewertungen nicht offiziell sind und mir keine Insiderinformationen vorliegen. Es ist auch nicht garantiert, dass ich nicht irgendwo einen Fehler gemacht oder etwas übersehen habe. Dennoch finde ich, dass es interessant geworden ist. Wir beginnen zunächst mit dem Code; wer sich nicht dafür interessiert, kann die ersten Abschnitte überspringen.
Datensammlung
In der ersten Version des Parsers wurden nur die Anzahl der Aufrufe, Kommentare und Artikelbewertungen berücksichtigt. Das ist schon gut, erlaubt aber keine komplexeren Abfragen. Es ist an der Zeit, die thematischen Abschnitte der Website zu analysieren. Auf diese Weise können Sie recht interessante Recherchen durchführen und beispielsweise sehen, wie sich die Beliebtheit des Abschnitts „C++“ über mehrere Jahre hinweg verändert hat.
Der Artikelparser wurde verbessert, er gibt jetzt die Hubs zurück, zu denen der Artikel gehört, sowie den Spitznamen des Autors und seine Bewertung (hier kann man auch viele interessante Dinge tun, aber das kommt später). Die Daten werden in einer CSV-Datei gespeichert, die etwa so aussieht:
2018-12-18T12:43Z,https://habr.com/ru/post/433550/,"Мессенджер Slack — причины выбора, косяки при внедрении и особенности сервиса, облегчающие жизнь",votes:7,votesplus:8,votesmin:1,bookmarks:32,
views:8300,comments:10,user:ReDisque,karma:5,subscribers:2,hubs:productpm+soft
...
Wir erhalten eine Liste der wichtigsten thematischen Schwerpunkte der Website.
def get_as_str(link: str) -> Str:
try:
r = requests.get(link)
return Str(r.text)
except Exception as e:
return Str("")
def get_hubs():
hubs = []
for p in range(1, 12):
page_html = get_as_str("https://habr.com/ru/hubs/page%d/" % p)
# page_html = get_as_str("https://habr.com/ru/hubs/geektimes/page%d/" % p) # Geektimes
# page_html = get_as_str("https://habr.com/ru/hubs/develop/page%d/" % p) # Develop
# page_html = get_as_str("https://habr.com/ru/hubs/admin/page%d" % p) # Admin
for hub in page_html.split("media-obj media-obj_hub"):
info = Str(hub).find_between('"https://habr.com/ru/hub', 'list-snippet__tags')
if "*</span>" in info:
hub_name = info.find_between('/', '/"')
if len(hub_name) > 0 and len(hub_name) < 32:
hubs.append(hub_name)
print(hubs)
Die Funktion find_between und die Klasse Str wählen einen String zwischen zwei Tags aus, ich habe sie verwendet früher. Themenschwerpunkte sind mit einem „*“ gekennzeichnet, sodass sie leicht hervorgehoben werden können. Sie können die entsprechenden Zeilen auch auskommentieren, um Abschnitte anderer Kategorien zu erhalten.
Die Ausgabe der get_hubs-Funktion ist eine ziemlich beeindruckende Liste, die wir als Wörterbuch speichern. Ich präsentiere die Liste ausdrücklich in ihrer Gesamtheit, damit Sie den Umfang abschätzen können.
Die übrigen Naben wurden auf die gleiche Weise konserviert. Jetzt ist es einfach, eine Funktion zu schreiben, die das Ergebnis zurückgibt, unabhängig davon, ob der Artikel zu Geektimes oder einem Profil-Hub gehört.
Wir zeigen die Anzahl der veröffentlichten Artikel mit Matplotlib an:
Ich habe die Artikel „Geektimes“ und „Nur Geektimes“ in der Tabelle unterteilt, weil Ein Artikel kann gleichzeitig zu beiden Rubriken gehören (zum Beispiel „DIY“ + „Mikrocontroller“ + „C++“). Ich habe die Bezeichnung „Profil“ verwendet, um Profilartikel auf der Website hervorzuheben, obwohl der englische Begriff „Profil“ dafür möglicherweise nicht ganz korrekt ist.
Im vorherigen Teil haben wir nach dem „Geektimes-Effekt“ gefragt, der mit der Änderung der Zahlungsregeln für Artikel für Geektimes ab diesem Sommer verbunden ist. Lassen Sie uns die Geektimes-Artikel separat anzeigen:
Das Ergebnis ist interessant. Das ungefähre Verhältnis der Aufrufe von Geektimes-Artikeln zur Gesamtzahl liegt bei etwa 1:5. Doch während die Gesamtzahl der Aufrufe deutlich schwankte, blieb die Betrachtung von „Unterhaltungs“-Artikeln in etwa auf dem gleichen Niveau.
Sie können auch feststellen, dass die Gesamtzahl der Aufrufe von Artikeln im Bereich „Geektimes“ nach der Änderung der Regeln immer noch gesunken ist, jedoch „nach Augenmaß“ um nicht mehr als 5 % der Gesamtwerte.
Es ist interessant, sich die durchschnittliche Anzahl der Aufrufe pro Artikel anzusehen:
Bei „Unterhaltungs“-Artikeln liegt er etwa 40 % über dem Durchschnitt. Dies ist wahrscheinlich nicht überraschend. Der Fehler Anfang April ist mir unklar, vielleicht ist das passiert, oder es handelt sich um eine Art Parsing-Fehler, oder vielleicht ist einer der Geektimes-Autoren in den Urlaub gefahren ;).
Die Grafik zeigt übrigens zwei weitere auffällige Spitzenwerte bei der Anzahl der Artikelaufrufe – die Neujahrs- und Maifeiertage.
Hubs
Kommen wir zur versprochenen Hub-Analyse. Lassen Sie uns die Top-20-Hubs nach Anzahl der Aufrufe auflisten:
Überraschenderweise war „Informationssicherheit“ der beliebteste Hub in Bezug auf die Ansichten; zu den Top-5-Spitzenreitern gehörten auch „Programmierung“ und „Populärwissenschaft“.
Antitop besetzt Gtk und Cocoa.
Ich verrate euch ein Geheimnis, auch die Top-Naben können sich sehen lassen hier, obwohl die Anzahl der Aufrufe dort nicht angezeigt wird.
Bewertung
Und zum Schluss noch die versprochene Bewertung. Mithilfe von Hub-Analysedaten können wir die beliebtesten Artikel für die beliebtesten Hubs für dieses Jahr 2019 anzeigen.
Und damit es niemanden beleidigt, gebe ich abschließend noch die Bewertung des am wenigsten besuchten Hubs „gtk“ ab. Innerhalb eines Jahres wurde es veröffentlicht ein Der Artikel, der auch „automatisch“ die erste Zeile der Bewertung belegt.