Habrastatistics: guneko gehien eta gutxien bisitatutako atalak aztertzea
Kaixo Habr.
Π aurreko zatia Habr-en trafikoa parametro nagusien arabera aztertu zen: artikulu kopurua, haien ikuspuntuak eta balorazioak. Hala ere, guneko atalen ospearen arazoa aztertu gabe geratu zen. Interesgarri bihurtu zen hau xehetasun gehiago aztertzea eta gune ezagunenak eta ezezagunak aurkitzea. Azkenik, geektimes efektua zehatzago aztertuko dut, sailkapen berrietan oinarritutako artikulu onenen aukeraketa berri batekin amaitzeko.
Gertatutakoan interesa dutenentzat, jarraipena mozketan dago.
Gogorarazten dizut berriro ere estatistikak eta balorazioak ez direla ofizialak, ez daukadala inongo informaziorik. Ez dago ziurtatzen nonbait akatsik edo zerbait galdu ez dudanik. Baina, hala ere, interesgarria iruditu zait. Kodearekin hasiko gara lehenik; hau interesatzen ez zaienek lehen atalak salta ditzakete.
Datu bilketa
Analizatzailearen lehen bertsioan, ikustaldi, iruzkin eta artikuluen balorazioak baino ez ziren kontuan hartu. Hau dagoeneko ona da, baina ez dizu aukera ematen kontsulta konplexuagoak egiteko. Gunearen atal tematikoak aztertzeko garaia da; honek ikerketa nahiko interesgarriak egiteko aukera emango dizu, adibidez, ikusi nola aldatu den "C++" atalaren ospea hainbat urtetan zehar.
Artikuluen analizatzailea hobetu da, orain artikuluari dagozkion hubak itzultzen ditu, baita egilearen ezizena eta bere balorazioa ere (hemen ere gauza interesgarri asko egin daitezke, baina hori geroago etorriko da). Datuak honelako itxura duen csv fitxategi batean gordetzen dira:
Gunearen ardatz tematiko nagusien zerrenda jasoko dugu.
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)
find_between funtzioak eta Str klaseak bi etiketen artean kate bat hautatzen du, nik erabili ditut lehenago. Zentro tematikoak "*" batekin markatuta daude, erraz nabarmendu ahal izateko, eta dagozkien lerroak iruzkindu ditzakezu beste kategorietako atalak lortzeko.
get_hubs funtzioaren irteera nahiko zerrenda ikusgarria da, hiztegi gisa gordetzen duguna. Zehazki, zerrenda osorik aurkezten dut, haren bolumena kalkulatu dezazuen.
Gainerako ardatzak modu berean kontserbatu ziren. Orain erraza da emaitza itzultzen duen funtzio bat idaztea, artikulua geektimes edo profil hub batekoa den.
Matplotlib erabiliz argitaratutako artikulu kopurua erakusten dugu:
"geektimes" eta "geektimes bakarrik" artikuluak taulan banatu ditut, zeren Artikulu bat bi ataletakoa izan daiteke aldi berean (adibidez, "DIY" + "mikrokontrolagailuak" + "C++"). "profila" izendapena erabili nuen guneko profil-artikuluak nabarmentzeko, nahiz eta beharbada ingelesezko profil terminoa guztiz zuzena ez den.
Aurreko zatian uda honetan hasiko diren geektimes artikuluen ordainketa arauen aldaketarekin lotutako "geektimes efektuari" buruz galdetu genuen. Erakuts ditzagun geektimes artikuluak bereizita:
Emaitza interesgarria da. Geektimes artikuluen ikustaldien gutxi gorabeherako proportzioa 1:5 ingurukoa da. Baina ikustaldi-kopuru osoa gorakada nabarmena izan arren, "entretenimendu" artikuluen ikustea maila berean mantendu zen gutxi gorabehera.
Era berean, ohar zaitezke "geektimes" atalean artikuluen ikustaldi kopuruak oraindik ere behera egin duela arauak aldatu ondoren, baina "begiz", balio guztien % 5 baino gehiago.
Interesgarria da artikulu bakoitzeko batez besteko ikustaldi kopurua ikustea:
"Entretenimendu" artikuluetarako batez bestekoaren %40 inguru dago. Hau seguruenik ez da harritzekoa. Apirilaren hasierako porrota ulertezina zait, agian hori gertatu da, edo analisi akatsen bat da, edo agian geektimes egileren bat oporretan joan zen ;).
Bide batez, grafikoak bi gailur nabarmen gehiago erakusten ditu artikuluen ikustaldi kopuruan: Urte Berria eta Maiatzeko oporrak.
Hubak
Joan gaitezen agindutako zentroen azterketara. Zerrenda ditzagun 20 zentro nagusiak ikustaldi kopuruaren arabera:
Harrigarria bada ere, ikuspegiei dagokienez, gunerik ezagunena "Informazioaren segurtasuna" izan zen; 5 lider nagusien artean "Programazioa" eta "Zientzia popularra" ere sartu ziren.
Antitop Gtk eta Cocoa okupatzen ditu.
Sekretu bat kontatuko dizuet, goiko hubak ere ikus daitezke Hemen, ikustaldi kopurua hor agertzen ez den arren.
Rating
Eta azkenik, agindutako balorazioa. Zentroaren analisiaren datuak erabiliz, 2019 urte honetarako gune ezagunenetako artikulu ezagunenak bistaratu ditzakegu.
Eta azkenik, inor iraindu ez dadin, gutxien bisitatutako hubaren balorazioa emango diot βgtkβ. Urtebeteren buruan argitaratu zen ΠΎΠ΄Π½Π° Artikuluak, "automatikoki" ere balorazioko lehen lerroa hartzen duena.