Habrastatistics: esplorazzjoni tas-sezzjonijiet l-aktar u l-inqas miżjura tas-sit
Ħej Habr.
В parti preċedenti It-traffiku ta’ Habr ġie analizzat skont il-parametri ewlenin – in-numru ta’ artikli, l-opinjonijiet u l-klassifikazzjonijiet tagħhom. Madankollu, il-kwistjoni tal-popolarità tas-sezzjonijiet tas-sit baqgħet mhux eżaminata. Sar interessanti li tħares lejn dan f'aktar dettall u ssib l-aktar ċentri popolari u mhux popolari. Fl-aħħarnett, ser inħares lejn l-effett tal-geektimes f'aktar dettall, u jispiċċa b'għażla ġdida tal-aqwa artikoli bbażati fuq klassifiki ġodda.
Għal dawk li huma interessati f'dak li ġara, il-kontinwazzjoni hija taħt il-qatgħa.
Ħa nfakkarkom għal darb'oħra li l-istatistika u l-klassifikazzjonijiet mhumiex uffiċjali, m'għandi l-ebda informazzjoni minn ġewwa. Mhux garantit ukoll li ma għamiltx żball x'imkien jew tlift xi ħaġa. Iżda xorta waħda, naħseb li rriżulta interessanti. Nibdew bil-kodiċi l-ewwel dawk li mhumiex interessati f'dan jistgħu jaqbżu l-ewwel sezzjonijiet.
Ġbir tad-dejta
Fl-ewwel verżjoni tal-parser, ġew ikkunsidrati biss in-numru ta 'fehmiet, kummenti u klassifikazzjonijiet tal-artikoli. Dan diġà huwa tajjeb, iżda ma jippermettix li tagħmel mistoqsijiet aktar kumplessi. Wasal iż-żmien li tanalizza s-sezzjonijiet tematiċi tas-sit dan jippermettilek tagħmel riċerka pjuttost interessanti, pereżempju, tara kif il-popolarità tas-sezzjoni "C++" inbidlet matul bosta snin.
L-artiklu parser ġie mtejjeb, issa jirritorna l-hubs li jappartjeni għalihom l-artiklu, kif ukoll il-laqam tal-awtur u l-klassifikazzjoni tiegħu (ħafna affarijiet interessanti jistgħu jsiru hawn ukoll, iżda dan se jiġi aktar tard). Id-dejta tiġi ffrankata f'fajl csv li jidher xi ħaġa bħal din:
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
...
Se nirċievu lista taċ-ċentri tematiċi ewlenin tas-sit.
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)
Il-funzjoni find_between u l-klassi Str tagħżel string bejn żewġ tikketti, użajthom qabel. Iċ-ċentri tematiċi huma mmarkati b'"*" sabiex ikunu jistgħu jiġu enfasizzati faċilment, u tista' wkoll tneħħi l-kumment tal-linji korrispondenti biex tikseb sezzjonijiet ta' kategoriji oħra.
L-output tal-funzjoni get_hubs hija lista pjuttost impressjonanti, li aħna nissejvjaw bħala dizzjunarju. Qiegħed nippreżenta speċifikament il-lista fl-intier tagħha sabiex tkun tista' tagħmel stima tal-volum tagħha.
Iċ-ċentri li fadal ġew ippreservati bl-istess mod. Issa huwa faċli li tikteb funzjoni li tirritorna r-riżultat kemm jekk l-artiklu jappartjenix għal geektimes jew għal ċentru tal-profil.
Aħna nuru n-numru ta' artikli ppubblikati bl-użu ta' Matplotlib:
Qsamt l-artikoli "geektimes" u "geektimes biss" fit-tabella, għaliex Artiklu jista 'jappartjeni għaż-żewġ sezzjonijiet fl-istess ħin (per eżempju, "DIY" + "mikrokontrolluri" + "C++"). Jien użajt id-denominazzjoni "profil" biex nenfasizza artikli tal-profil fuq is-sit, għalkemm forsi t-terminu Ingliż profil għal dan mhuwiex kompletament korrett.
Fil-parti preċedenti staqsejna dwar l-"effett tal-geektimes" assoċjat mal-bidla fir-regoli tal-ħlas għall-artikoli għall-geektimes li jibdew dan is-sajf. Ejja nuru l-artikoli tal-geektimes separatament:
Ir-riżultat huwa interessanti. Il-proporzjon approssimattiv tal-fehmiet tal-artikoli tal-geektimes mat-total huwa xi mkien madwar 1:5. Iżda filwaqt li n-numru totali ta 'fehmiet varja b'mod notevoli, il-wiri ta' artikli ta '"divertiment" baqa' bejn wieħed u ieħor fl-istess livell.
Tista 'tinnota wkoll li n-numru totali ta' fehmiet ta 'artikoli fit-taqsima "geektimes" xorta waqa' wara li bidlet ir-regoli, iżda "bil-għajn", b'mhux aktar minn 5% tal-valuri totali.
Huwa interessanti li wieħed iħares lejn in-numru medju ta' fehmiet għal kull artikolu:
Għal artikoli ta '"divertiment" huwa madwar 40% 'l fuq mill-medja. Dan probabbilment mhux sorprendenti. In-nuqqas fil-bidu ta 'April mhuwiex ċar għalija, forsi dak li ġara, jew huwa xi tip ta' żball ta 'parsing, jew forsi wieħed mill-awturi tal-geektimes mar vaganza ;).
Mill-mod, il-graff turi żewġ qċaċet aktar notevoli fin-numru ta 'fehmiet ta' artikli - is-Sena l-Ġdida u l-vaganzi ta 'Mejju.
Hubs
Ejja ngħaddu għall-analiżi mwiegħda taċ-ċentri. Ejja elenka l-aqwa 20 ċentru skont in-numru ta’ fehmiet:
B'mod sorprendenti, l-iktar ċentru popolari f'termini ta 'fehmiet kien "Sigurtà tal-Informazzjoni" l-aqwa 5 mexxejja inkludew ukoll "Programmazzjoni" u "Xjenza Popolari".
Antitop tokkupa Gtk u Cocoa.
Jien ngħidlek sigriet, jistgħu jidhru wkoll il-hubs ta 'fuq hawn, għalkemm in-numru ta' fehmiet mhux muri hemmhekk.
Rating
U finalment, il-klassifikazzjoni mwiegħda. Bl-użu tad-dejta tal-analiżi tal-hubs, nistgħu nuru l-artikoli l-aktar popolari għall-aktar hubs popolari għal din is-sena 2019.
U fl-aħħarnett, sabiex ħadd ma jkun offiż, se nagħti l-klassifikazzjoni tal-hub l-inqas miżjura "gtk". Fi żmien sena ġie ppubblikat wieħed l-artikolu, li wkoll "awtomatikament" jokkupa l-ewwel linja tal-klassifikazzjoni.