Habrastatistics: eksplorimi i seksioneve më dhe më pak të vizituara të faqes
Hej Habr.
В pjesa e mëparshme Trafiku i Habr u analizua sipas parametrave kryesorë - numri i artikujve, pikëpamjet dhe vlerësimet e tyre. Sidoqoftë, çështja e popullaritetit të seksioneve të faqes mbeti e pashqyrtuar. U bë interesante ta shikojmë këtë në më shumë detaje dhe të gjejmë qendrat më të njohura dhe më të papëlqyeshme. Së fundi, do të shikoj më në detaje efektin geektimes, duke përfunduar me një përzgjedhje të re të artikujve më të mirë bazuar në renditjet e reja.
Për ata që janë të interesuar për atë që ka ndodhur, vazhdimi është nën prerje.
Më lejoni t'ju kujtoj edhe një herë se statistikat dhe vlerësimet nuk janë zyrtare, nuk kam asnjë informacion të brendshëm. Gjithashtu nuk është e garantuar që nuk kam gabuar diku ose kam humbur diçka. Por megjithatë, unë mendoj se doli interesante. Fillimisht do të fillojmë me kodin; ata që nuk janë të interesuar për këtë mund të kalojnë seksionet e para.
Mbledhja e të dhënave
Në versionin e parë të analizuesit, u morën parasysh vetëm numri i shikimeve, komenteve dhe vlerësimeve të artikujve. Kjo tashmë është e mirë, por nuk ju lejon të bëni pyetje më komplekse. Është koha për të analizuar seksionet tematike të faqes; kjo do t'ju lejojë të bëni kërkime mjaft interesante, për shembull, të shihni se si ka ndryshuar popullariteti i seksionit "C++" gjatë disa viteve.
Analisti i artikujve është përmirësuar, tani ai kthen qendrat të cilave i përket artikulli, si dhe pseudonimin e autorit dhe vlerësimin e tij (shumë gjëra interesante mund të bëhen edhe këtu, por kjo do të vijë më vonë). Të dhënat ruhen në një skedar csv që duket diçka si kjo:
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
...
Do të marrim një listë të qendrave kryesore tematike të faqes.
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)
Funksioni find_between dhe klasa Str zgjedhin një varg midis dy etiketave, unë i përdora ato më herët. Qendrat tematike janë shënuar me një "*" në mënyrë që ato të mund të theksohen lehtësisht, dhe gjithashtu mund të hiqni komentet e rreshtave përkatës për të marrë seksione të kategorive të tjera.
Prodhimi i funksionit get_hubs është një listë mjaft mbresëlënëse, të cilën e ruajmë si fjalor. Unë po e prezantoj në mënyrë specifike listën në tërësi në mënyrë që të vlerësoni vëllimin e saj.
Qendrat e mbetura u ruajtën në të njëjtën mënyrë. Tani është e lehtë të shkruash një funksion që kthen rezultatin nëse artikulli i përket geektimes ose një qendre profili.
Ne shfaqim numrin e artikujve të botuar duke përdorur Matplotlib:
I ndava artikujt "geektimes" dhe "vetëm geektimes" në grafik, sepse Një artikull mund t'u përkasë të dy seksioneve në të njëjtën kohë (për shembull, "DIY" + "mikrokontrolluesit" + "C++"). Kam përdorur përcaktimin "profil" për të nxjerrë në pah artikujt e profilit në faqe, megjithëse ndoshta termi anglisht profil për këtë nuk është plotësisht i saktë.
Në pjesën e mëparshme, ata pyetën për "efektin geektimes" që lidhet me ndryshimin e rregullave të pagesës për artikujt për geektimes këtë verë. Le të shfaqim artikujt e geektimes veçmas:
Rezultati është interesant. Raporti i përafërt i shikimeve të artikujve të geektimes me totalin është diku rreth 1:5. Por ndërkohë që numri total i shikimeve luhatej dukshëm, shikueshmëria e artikujve “argëtues” mbeti afërsisht në të njëjtin nivel.
Ju gjithashtu mund të vini re se numri i përgjithshëm i shikimeve të artikujve në seksionin "geektimes" ende ra pas ndryshimit të rregullave, por "me sy", jo më shumë se 5% të vlerave totale.
Është interesante të shikosh numrin mesatar të shikimeve për artikull:
Për artikujt “argëtues” është rreth 40% mbi mesataren. Kjo ndoshta nuk është për t'u habitur. Dështimi në fillim të prillit është i pakuptueshëm për mua, ndoshta kështu ka ndodhur, ose është një lloj gabimi analize, ose ndoshta një nga autorët e geektimes ka shkuar me pushime ;).
Nga rruga, grafiku tregon dy maja më të dukshme në numrin e shikimeve të artikujve - festat e Vitit të Ri dhe majit.
Qendrat
Le të kalojmë në analizën e premtuar të shpërndarësve. Le të rendisim 20 qendrat kryesore sipas numrit të shikimeve:
Çuditërisht, qendra më e njohur për sa i përket pikëpamjeve ishte "Siguria e Informacionit"; 5 liderët kryesorë përfshinin gjithashtu "Programimin" dhe "Shkencën popullore".
Antitop zë Gtk dhe Kakao.
Unë do t'ju them një sekret, mund të shihen edhe qendrat kryesore këtu, megjithëse numri i shikimeve nuk tregohet atje.
Vlerësim
Dhe së fundi, vlerësimi i premtuar. Duke përdorur të dhënat e analizës së qendrës, ne mund të shfaqim artikujt më të njohur për qendrat më të njohura për këtë vit 2019.
Dhe së fundi, në mënyrë që askush të mos ofendohet, unë do të jap vlerësimin e qendrës më pak të vizituar "gtk". Brenda një viti u botua një artikulli, i cili gjithashtu “automatikisht” zë rreshtin e parë të vlerësimit.