Habrastatistics: eksplore seksyon ki pi plis ak mwens vizite nan sit la
Hey Habr.
В pati anvan Trafik Habr te analize dapre paramèt prensipal yo - kantite atik, opinyon yo ak evalyasyon yo. Sepandan, pwoblèm nan nan popilarite a nan seksyon sit yo rete san egzamine. Li te vin enteresan yo gade sa a an plis detay epi jwenn sant ki pi popilè ak pi popilè. Finalman, mwen pral gade nan efè geektimes an plis detay, fini ak yon nouvo seleksyon nan pi bon atik yo ki baze sou nouvo klasman.
Pou moun ki enterese nan sa ki te pase, kontinyasyon an se anba koupe a.
Kite m fè w sonje yon lòt fwa ankò ke estatistik yo ak evalyasyon yo pa ofisyèl, mwen pa gen okenn enfòmasyon inisye. Li pa garanti tou ke mwen pa t 'fè yon erè yon kote oswa rate yon bagay. Men, toujou, mwen panse ke li te tounen enteresan. Nou pral kòmanse ak kòd la an premye moun ki pa enterese nan sa a ka sote premye seksyon yo.
Koleksyon done
Nan premye vèsyon an analizeur a, se sèlman kantite opinyon, kòmantè ak evalyasyon atik yo te pran an kont. Sa a deja bon, men li pa pèmèt ou fè demann ki pi konplèks. Li lè yo analize seksyon yo tematik nan sit la sa a pral pèmèt ou fè rechèch trè enteresan, pou egzanp, wè ki jan popilarite nan seksyon "C++" te chanje pandan plizyè ane.
Te analizeur atik la amelyore, kounye a li retounen sant yo ki atik la fè pati, osi byen ke tinon otè a ak evalyasyon li (yon anpil bagay enteresan yo ka fè isit la, tou, men sa ap vini pita). Done yo sove nan yon dosye csv ki sanble yon bagay tankou sa a:
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
...
Nou pral resevwa yon lis prensipal sant tematik nan sit la.
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)
Fonksyon find_between ak klas Str chwazi yon fisèl ant de tags, mwen te itilize yo pi bonè. Sant tematik yo make ak yon "*" pou yo ka idantifye yo fasil, epi ou ka tou dekomantè liy korespondan yo pou jwenn seksyon nan lòt kategori.
Pwodiksyon fonksyon get_hubs la se yon lis san patipri enpresyonan, ke nou sove kòm yon diksyonè. Mwen espesyalman prezante lis la an antye pou w ka estime volim li.
Sant ki rete yo te konsève nan menm fason an. Koulye a, li fasil ekri yon fonksyon ki retounen rezilta a si atik la fè pati geektimes oswa yon sant pwofil.
Nou montre kantite atik pibliye lè l sèvi avèk Matplotlib:
Mwen divize atik yo "geektimes" ak "geektimes sèlman" nan tablo a, paske Yon atik ka fè pati tou de seksyon an menm tan (pa egzanp, "DIY" + "mikrokontroleur" + "C++"). Mwen te itilize deziyasyon "pwofil" pou mete aksan sou atik pwofil yo sou sit la, byenke petèt pwofil tèm angle pou sa a pa totalman kòrèk.
Nan pati anvan an, yo te mande sou "efè geektimes" ki asosye ak chanjman nan règ yo peman pou atik pou geektimes ete sa a. Ann montre atik geektimes yo separeman:
Rezilta a enteresan. Rapò apwoksimatif opinyon atik geektimes ak total la se yon kote alantou 1:5. Men, pandan ke kantite total opinyon yo varye notables, gade nan atik "divètisman" rete nan apeprè menm nivo.
Ou ka remake tou ke kantite total opinyon nan atik nan seksyon "geektimes" toujou tonbe apre yo fin chanje règ yo, men "pa je", pa plis pase 5% nan valè total yo.
Li enteresan pou gade kantite mwayèn opinyon pou chak atik:
Pou atik "divètisman" li se anviwon 40% pi wo pase mwayèn. Sa a se pwobableman pa etone. Echèk la nan kòmansman mwa avril se enkonpreyansib pou mwen, petèt se sa ki te pase, oswa li nan yon kalite erè analiz, oswa petèt youn nan otè yo geektimes te ale nan vakans ;).
By wout la, graf la montre de pik plis aparan nan kantite opinyon atik - Nouvèl Ane a ak jou ferye Me.
Mwaye
Ann ale nan analiz yo te pwomèt nan sant. Ann fè lis 20 pi gwo sant yo pa kantite opinyon:
Epi finalman, pou pa gen moun ki ofanse, mwen pral bay Rating nan mwaye ki pi piti vizite "gtk". Nan yon ane li te pibliye youn Atik la, ki tou "otomatikman" okipe premye liy evalyasyon an.