Habrastatistics: sahaminta qaybaha ugu iyo ugu yar ee goobta
Haye Habr.
Π qayb hore Gaadiidka Habr ayaa loo falanqeeyay iyadoo loo eegayo cabbirrada ugu muhiimsan - tirada maqaallada, aragtidooda iyo qiimeyntooda. Si kastaba ha ahaatee, arrinta caanka ah ee qaybaha goobta ayaa ahaa mid aan la baarin. Waxay noqotay mid xiiso leh in arrintan si faahfaahsan loo eego oo la helo xarumaha ugu caansan iyo kuwa ugu caansan. Ugu dambeyntii, waxaan si faahfaahsan u eegi doonaa saamaynta geektimes, oo ku dhammaanaysa xulashada cusub ee maqaallada ugu fiican ee ku salaysan darajooyinka cusub.
Kuwa xiisaynaya waxa dhacay, sii waditaanka ayaa hoos imanaya.
Aan mar kale ku xasuusiyo in tirakoobka iyo qiimeynta aysan ahayn mid rasmi ah, ma hayo wax macluumaad ah oo gudaha ah. Sidoo kale lama dammaanad qaadayo in aanan meel ku qaldamin ama aanan waxba seegin. Laakiin weli, waxaan qabaa inay soo baxday mid xiiso leh. Waxaan ku bilaabi doonaa koodhka marka hore, kuwa aan xiiseyneynin arrintan waxay ka boodi karaan qaybaha ugu horreeya.
Xog ururin
Nuqulkii ugu horreeyay ee falanqaynta, kaliya tirada aragtiyada, faallooyinka iyo qiimaynta maqaallada ayaa la tixgeliyey. Tani waa horeba wanaagsanayd, laakiin kuma ogola inaad samayso su'aalo kakan. Waa waqtigii lagu falanqeyn lahaa qaybaha mawduuca ee goobta; tani waxay kuu ogolaaneysaa inaad sameyso cilmi baaris aad u xiiso badan, tusaale ahaan, fiiri sida caanka ah ee qaybta "C ++" ay isu beddeshay dhowr sano.
Falanqaynta maqaalku waa la hagaajiyay, hadda waxay soo celinaysaa xudunta maqaalku leeyahay, iyo sidoo kale naaneesta qoraaga iyo qiimeyntiisa (waxyaabo badan oo xiiso leh ayaa sidoo kale lagu samayn karaa halkan, laakiin taasi way iman doontaa). Xogta waxaa lagu kaydiyaa faylka csv oo u eg sidan:
Waxaan heli doonaa liiska mawduucyada ugu muhiimsan ee goobta.
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_internet function iyo fasalka Str ayaa doorta xadhig u dhexeeya laba tag, waan isticmaalay hore. Xuddunta mawduucyada waxaa lagu calaamadeeyay "*" si si sahal ah loo aqoonsan karo, waxaad sidoo kale dhibi kartaa xadadka u dhigma si aad u hesho qaybaha qaybaha kale.
Soo saarida shaqada get_hubs waa liis cadaalad ah oo cajiib ah, kaas oo aanu u kaydinay qaamuus ahaan. Waxaan si gaar ah u soo bandhigayaa liiska oo dhan si aad u qiyaastid muggiisa.
Xubnihii hadhayna si la mid ah ayaa loo dhawray. Hadda way fududahay in la qoro shaqo soo celinaysa natiijada haddii maqaalku leeyahay geektimes ama xarun profile.
Waxaan soo bandhignaa tirada maqaallada la daabacay anagoo adeegsanayna Matplotlib:
Waxaan u qaybiyay maqaallada "geektimes" iyo "geektimes kaliya" ee shaxda, sababtoo ah Maqaalku wuxuu ka tirsanaan karaa labada qaybood isku mar (tusaale, "DIY" + "microcontrollers" + "C++"). Waxaan isticmaalay "profile" magacaabista si aan u muujiyo maqaallada astaanta u ah goobta, in kasta oo laga yaabo in ereyga Ingiriisiga ee tani aysan sax ahayn.
Qaybtii hore waxaan ku waydiinay "saamaynta geektimes" ee la xidhiidha isbeddelka xeerarka lacag bixinta ee maqaallada geektimes ee bilaabmaya xagaagan. Aan si gaar ah u soo bandhigno maqaallada geektimes:
Natiijadu waa mid xiiso leh. Qiyaasta saamiga qiyaasaha ee maqaallada geektimes ilaa wadarta guud waa meel ku dhow 1:5. Laakiin iyadoo tirada guud ee ra'yigu ay si muuqata isu beddeshay, daawashada maqaallada "madadaalada" waxay ku hareen ku dhawaad ββisla heer.
Waxa kale oo aad ogaan kartaa in tirada guud ee ra'yiga maqaallada ee qaybta "geektimes" ay weli hoos u dhacday ka dib markii la beddelo xeerarka, laakiin "indhaha", oo aan ka badnayn 5% qiimaha wadarta.
Waxa xiiso leh in la eego celceliska tirada aragtiyada maqaalkii:
Maqaallada "madadaalada" waxay qiyaastii 40% ka sarreeyaan celceliska. Tani malaha yaab maaha. Guuldarada bilawga Abriil aniga iima cadda, malaha taasi waa wixii dhacay, ama waa nooc ka mid ah khaladaadka falanqaynta, ama laga yaabee mid ka mid ah qorayaasha geektimes ayaa fasax aaday;).
Jid ahaan, garaafku wuxuu muujinayaa laba meelood oo kale oo la dareemi karo oo ku saabsan tirada aragtida maqaallada - Sannadka Cusub iyo Fasaxyada May.
Hub
Aan u gudubno falanqaynta la ballanqaaday ee hub. Aynu ku taxno 20-ka xarumood ee ugu sarreeya tiro aragtiyo ah:
Waxa la yaab leh, in xudunta ugu caansan xagga aragtida ay ahayd βAmmaanka Macluumaadkaβ, 5-ta hoggaamiye ee ugu sarreeya ayaa sidoo kale ku jiray βBarnaamijkaβ iyo βSayniska caanka ahβ.
Antitop-ka ayaa ku jira Gtk iyo Cocoa.
Waxaan kuu sheegi doonaa sir, xarumaha ugu sarreeya ayaa sidoo kale la arki karaa halkan, inkasta oo tirada aragtiyada aan halkaas lagu muujin.
Ugu dambeyntiina, si aan qofna u xumaanin, waxaan siin doonaa qiimeynta xarunta ugu yar ee la booqdo "gtk". Sanad gudihii ayaa la daabacay ΠΎΠ΄Π½Π° Maqaalka, kaas oo sidoo kale "si toos ah" u fadhiya safka koowaad ee qiimeynta.