Habrastatistics: e ʻimi ana i nā ʻāpana i kipa pinepine ʻia o ka pūnaewele
Aloha Habr.
В hapa mua Ua kālailai ʻia ke kaʻa o Habr e like me nā ʻāpana nui - ka helu o nā ʻatikala, ko lākou manaʻo a me nā helu. Eia naʻe, ʻaʻole i nānā ʻia ka pilikia o ka kaulana o nā ʻāpana pūnaewele. Ua lilo i mea hoihoi i ka nānā ʻana i kēia me nā kikoʻī hou aʻe a ʻike i nā hubs kaulana a kaulana ʻole. ʻO ka hope, e nānā au i ka hopena geektimes i nā kikoʻī hou aku, e hoʻopau ana me kahi koho hou o nā ʻatikala maikaʻi loa e pili ana i nā pae hou.
No ka poʻe hoihoi i ka mea i hana ʻia, aia ka hoʻomau ma lalo o ka ʻoki.
E hoʻomanaʻo hou wau iā ʻoe ʻaʻole i mana nā helu a me nā helu, ʻaʻohe oʻu ʻike insider. ʻAʻole hoʻi e hōʻoiaʻiʻo ʻaʻole wau i hana hewa i kahi a i ʻole i hala i kekahi mea. Akā naʻe, manaʻo wau ua lilo ia i mea hoihoi. E hoʻomaka mākou me ke code mua; hiki i ka poʻe makemake ʻole i kēia ke hoʻokuʻu i nā ʻāpana mua.
ʻOhi ʻikepili
Ma ka mana mua o ka parser, ʻo ka helu wale nō o nā manaʻo, nā manaʻo a me nā helu ʻatikala i mālama ʻia. Ua maikaʻi kēia, akā ʻaʻole ia e ʻae iā ʻoe e hana i nā nīnau paʻakikī. ʻO ka manawa kēia e nānā ai i nā ʻāpana kumuhana o ka pūnaewele; e ʻae kēia iā ʻoe e hana i kahi noiʻi hoihoi, no ka laʻana, e ʻike pehea i loli ai ka kaulana o ka ʻāpana "C++" i nā makahiki he nui.
Ua hoʻomaikaʻi ʻia ka parser ʻatikala, i kēia manawa ua hoʻihoʻi ia i nā hubs nona ka ʻatikala, a me ka inoa kapakapa o ka mea kākau a me kāna helu (hiki ke hana ʻia nā mea hoihoi ma ʻaneʻi, akā e hiki mai ana ma hope). Mālama ʻia ka ʻikepili i kahi faila csv e like me kēia:
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
...
E loaʻa iā mākou kahi papa inoa o nā hubs thematic nui o ka pūnaewele.
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)
ʻO ka hana find_between a me ka papa Str e koho i kahi kaula ma waena o nā hōʻailona ʻelua, ua hoʻohana wau iā lākou mamua. Hoʻopaʻa ʻia nā hubs thematic me kahi "*" i hiki ke hōʻike maʻalahi ʻia, a hiki iā ʻoe ke hoʻokaʻawale i nā laina pili e kiʻi i nā ʻāpana o nā ʻāpana ʻē aʻe.
ʻO ka hopena o ka hana get_hubs he papa inoa maikaʻi loa, a mākou e mālama ai ma ke ʻano he puke wehewehe. Ke hōʻike pono nei au i ka papa inoa piha i hiki iā ʻoe ke koho i kona nui.
Ua mālama ʻia nā hubs i koe ma ke ʻano like. I kēia manawa ua maʻalahi ke kākau i kahi hana e hoʻihoʻi i ka hopena inā pili ka ʻatikala i nā geektimes a i ʻole kahi kikoʻī.
Hōʻike mākou i ka helu o nā ʻatikala i paʻi ʻia me ka hoʻohana ʻana iā Matplotlib:
Ua hoʻokaʻawale au i nā ʻatikala "geektimes" a me "geektimes wale nō" ma ka pakuhi, no ka mea Hiki i kekahi ʻatikala ke pili i nā ʻāpana ʻelua i ka manawa like (no ka laʻana, "DIY" + "microcontrollers" + "C++"). Ua hoʻohana au i ka inoa "profile" e hōʻike i nā ʻatikala pili ma ka pūnaewele, ʻoiai ʻaʻole pololei loa ka ʻōlelo Pelekane no kēia.
Ma ka ʻāpana mua ua nīnau mākou e pili ana i ka "hopena geektimes" pili i ka hoʻololi ʻana i nā lula uku no nā ʻatikala no nā geektimes e hoʻomaka ana i kēia kauwela. E hōʻike kaʻawale i nā ʻatikala geektimes:
He hoihoi ka hopena. ʻO ka ratio kokoke o nā ʻike o nā ʻatikala geektimes i ka huina ma kahi o 1:5. Akā, ʻoiai ua loli ka nui o nā manaʻo, ua mau ka nānā ʻana i nā ʻatikala "hoʻonanea" ma kahi o ka pae like.
Hiki iā ʻoe ke ʻike i ka hāʻule ʻana o ka helu o nā ʻatikala ma ka ʻāpana "geektimes" ma hope o ka hoʻololi ʻana i nā lula, akā "ma ka maka", ʻaʻole i ʻoi aku ma mua o 5% o ka nui o nā waiwai.
He mea hoihoi ia ke nana aku i ka awelika helu o na manao no ka atikala:
No nā ʻatikala "hoʻokipa" ma kahi o 40% ma luna o ka awelika. ʻAʻole paha he mea kupanaha kēia. ʻAʻole maopopo iaʻu ka hāʻule ʻana i ka hoʻomaka ʻana o ʻApelila, malia paha ʻo ia ka mea i hana ʻia, a i ʻole kekahi ʻano hewa parsing, a i ʻole kekahi o nā mea kākau geektimes i hele i ka hoʻomaha;).
Ma ke ala, hōʻike ka pakuhi i ʻelua mau kiʻekiʻe i ʻike ʻia i ka helu o nā manaʻo o nā ʻatikala - ka makahiki hou a me Mei.
Nā punapaa
E neʻe kākou i ka ʻikepili i ʻōlelo ʻia no nā hubs. E papa inoa i nā hub 20 kiʻekiʻe ma ka helu o nā manaʻo:
ʻO ka mea kupanaha, ʻo ka hub kaulana loa e pili ana i nā manaʻo ʻo "Information Security"; ʻo nā alakaʻi kiʻekiʻe 5 pū kekahi "Programming" a me "Popular Science".
Noho ʻo Antitop iā Gtk a me Cocoa.
E haʻi aku wau iā ʻoe i kahi mea huna, hiki ke ʻike ʻia nā hub kiʻekiʻe maanei, ʻoiai ʻaʻole i hōʻike ʻia ka helu o nā ʻike ma laila.
Ka helu inoa
A ʻo ka hope, ka helu i ʻōlelo ʻia. Ke hoʻohana nei i ka ʻikepili ʻikepili hub, hiki iā mākou ke hōʻike i nā ʻatikala kaulana loa no nā hubs kaulana loa no kēia makahiki 2019.
A ʻo ka hope, i ʻole e hōʻeha ʻia kekahi, e hāʻawi wau i ka helu o ka hub liʻiliʻi loa i kipa ʻia "gtk". I loko o hoʻokahi makahiki ua paʻi ʻia hookahi ʻO ka ʻatikala, ʻo ia hoʻi ka "akomi" i ka laina mua o ka helu.