Habrastatistics: esplorendu e sezioni più è menu visitate di u situ
Hey Habr.
В parte precedente U trafficu di Habr hè statu analizatu secondu i paràmetri principali - u nùmeru d'articuli, i so vede è qualificazioni. In ogni casu, u prublema di a popularità di e rùbbriche di u situ ùn era micca esaminatu. Hè diventatu interessante per vede questu in più dettagliu è truvà i centri più populari è più impopulari. Infine, fighjularaghju l'effettu geektimes in più detail, finendu cù una nova selezzione di i migliori articuli basati nantu à novi classifiche.
Per quelli chì anu interessatu in ciò chì hè accadutu, a continuazione hè sottu u cut.
Lasciami ricurdà una volta di più chì e statistiche è e valutazioni ùn sò micca ufficiali, ùn aghju micca infurmazione insider. Ùn hè ancu garantitu chì ùn aghju micca fattu un sbagliu in qualchì locu o missu qualcosa. Ma ancu, pensu chì hè statu interessante. Avemu da principià cù u codice prima quelli chì ùn sò micca interessatu in questu ponu saltà i primi rùbbriche.
Raccolta di dati
In a prima versione di u parser, solu u numeru di viste, cumenti è qualificazioni di l'articuli sò stati cunsiderati. Questu hè digià bonu, ma ùn vi permette micca di fà dumande più cumplesse. Hè u tempu di analizà e rùbbriche tematiche di u situ, questu vi permetterà di fà una ricerca assai interessante, per esempiu, vede cumu a popularità di a sezione "C++" hà cambiatu in parechji anni.
U parser di l'articulu hè statu migliuratu, avà torna i centri à quale appartene l'articulu, è ancu u soprannomu di l'autore è a so valutazione (assai cose interessanti ponu esse fatte ancu quì, ma chì vene dopu). I dati sò salvati in un schedariu csv chì pare cusì cusì:
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
...
Riceveremu una lista di i principali centri tematichi di u situ.
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)
A funzione find_between è a classa Str selezziunate una stringa trà dui tags, l'aghju utilizatu nanzu. I centri tematichi sò marcati cù un "*" in modu chì ponu esse facilmente evidenziati, è pudete ancu annullà e linee currispundenti per uttene sezioni di altre categurie.
L'output di a funzione get_hubs hè una lista abbastanza impressiunanti, chì salvemu cum'è dizziunariu. Sò prisintatu specificamente a lista in a so sanu per chì pudete stima u so voluminu.
I centri rimanenti sò stati cunservati in u listessu modu. Avà hè faciule per scrive una funzione chì torna u risultatu sia l'articulu appartene à geektimes o un centru di prufilu.
Mostremu u numeru di articuli publicati cù Matplotlib:
Aghju divisu l'articuli "geektimes" è "geektimes only" in u graficu, perchè Un articulu pò appartene à e duie sezioni à u stessu tempu (per esempiu, "DIY" + "microcontrollers" + "C++"). Aghju utilizatu a designazione "profile" per mette in risaltu l'articuli di prufilu nantu à u situ, ancu s'ellu forse u terminu inglese prufilu per questu ùn hè micca sanu sanu currettu.
In a parti precedente avemu dumandatu annantu à l'"effettu geektimes" assuciatu cù u cambiamentu di e regule di pagamentu per l'articuli per i geektimes chì partenu di sta veranu. Fighjemu l'articuli geektimes separatamente:
U risultatu hè interessante. U rapportu apprussimativu di viste di l'articuli geektimes à u tutale hè in qualchì locu intornu à 1: 5. Ma mentri u numeru tutale di viste fluctuò notevolmente, a visualizazione di l'articuli "divertimenti" hè stata apprussimatamente à u listessu livellu.
Pudete ancu nutà chì u numeru tutale di vista di l'articuli in a sezione "geektimes" hè sempre cascatu dopu à cambià e regule, ma "à l'ochju", micca più di 5% di i valori totali.
Hè interessante per vede u numeru mediu di viste per articulu:
Per l'articuli "intrattenimentu" hè circa 40% sopra à a media. Questu hè probabilmente micca surprisante. U fallimentu à l'iniziu d'aprile ùn hè micca chjaru per mè, forse hè ciò chì hè accadutu, o hè un tipu d'errore di analisi, o forse unu di l'autori geektimes hè andatu in vacanze ;).
In modu, u graficu mostra dui picchi più notevuli in u numeru di vista di l'articuli - l'annu novu è e vacanze di maghju.
Hubs
Passemu à l'analisi prumessa di hubs. Elenchimu i top 20 hubs per numeru di viste:
Sorprendentemente, u centru più pupulare in termini di vista era "Sicurezza di l'infurmazioni" i primi capi 5 includenu ancu "Programmazione" è "Scienza populari".
Antitop occupa Gtk è Cocoa.
Vi dicu un sicretu, i top hubs ponu ancu esse vistu ccà, anche se u numeru di viste ùn hè micca mostratu quì.
Rating
È infine, a valutazione prumessa. Utilizendu i dati di l'analisi di u hub, pudemu visualizà l'articuli più populari per i centri più populari per questu annu 2019.
È infine, per chì nimu ùn sia offesu, daraghju a qualificazione di u centru menu visitatu "gtk". In un annu hè statu publicatu одна L'articulu, chì ancu "automaticamente" occupa a prima linea di a classificazione.