ProHoster > Блог > ayelujara iroyin > Habrastatistics: ṣawari pupọ julọ ati awọn apakan abẹwo ti o kere julọ ti aaye naa
Habrastatistics: ṣawari pupọ julọ ati awọn apakan abẹwo ti o kere julọ ti aaye naa
Hello, Habr.
В ti tẹlẹ apakan A ṣe atupale ijabọ Habr ni ibamu si awọn ipilẹ akọkọ - nọmba awọn nkan, awọn iwo wọn ati awọn idiyele. Bibẹẹkọ, ọran ti gbaye-gbale ti awọn apakan aaye naa ko ṣe ayẹwo. O di ohun ti o nifẹ lati wo eyi ni awọn alaye diẹ sii ki o wa awọn ibudo olokiki julọ ati olokiki julọ. Ni ipari, Emi yoo wo ipa geektimes ni awọn alaye diẹ sii, ti o pari pẹlu yiyan tuntun ti awọn nkan ti o dara julọ ti o da lori awọn ipo tuntun.
Fun awọn ti o nifẹ si ohun ti o ṣẹlẹ, itesiwaju wa labẹ gige.
Jẹ ki n leti lekan si pe awọn iṣiro ati awọn idiyele kii ṣe osise, Emi ko ni alaye inu eyikeyi. O tun ko ni idaniloju pe Emi ko ṣe aṣiṣe kan ni ibikan tabi padanu nkankan. Sugbon si tun, Mo ro pe o wa ni jade awon. A yoo bẹrẹ pẹlu koodu akọkọ; awọn ti ko nifẹ si eyi le foju awọn apakan akọkọ.
Gbigba data
Ninu ẹya akọkọ ti parser, nọmba awọn iwo nikan, awọn asọye ati awọn idiyele nkan ni a ṣe sinu akọọlẹ. Eyi ti dara tẹlẹ, ṣugbọn ko gba ọ laaye lati ṣe awọn ibeere eka diẹ sii. O to akoko lati ṣe itupalẹ awọn apakan akori ti aaye naa; eyi yoo gba ọ laaye lati ṣe iwadii ti o nifẹ pupọ, fun apẹẹrẹ, wo bii olokiki ti apakan “C ++” ti yipada ni ọpọlọpọ ọdun.
A ti ni ilọsiwaju sisọ ọrọ naa, ni bayi o da awọn ibudo ti nkan naa jẹ, ati orukọ apeso onkọwe ati idiyele rẹ (ọpọlọpọ awọn nkan ti o nifẹ le ṣee ṣe nibi, paapaa, ṣugbọn iyẹn yoo wa nigbamii). Awọn data ti wa ni fipamọ ni csv faili ti o dabi nkan bi eleyi:
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
...
A yoo gba atokọ ti awọn ibudo koko akọkọ ti aaye naa.
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)
Iṣẹ find_between ati kilasi Str yan okun laarin awọn aami meji, Mo lo wọn sẹyìn. Awọn ibudo akori ti samisi pẹlu "*" ki wọn le ṣe afihan ni rọọrun, ati pe o tun le ṣe akiyesi awọn ila ti o baamu lati gba awọn apakan ti awọn ẹka miiran.
Ijade ti iṣẹ get_hubs jẹ atokọ iwunilori kan, eyiti a fipamọ bi iwe-itumọ. Mo n ṣafihan atokọ ni pataki ni gbogbo rẹ ki o le ṣe iṣiro iwọn rẹ.
A ṣe afihan nọmba awọn nkan ti a tẹjade nipa lilo Matplotlib:
Mo ti pin awọn nkan "geektimes" ati "geektimes nikan" ninu chart, nitori Nkan le jẹ ti awọn apakan mejeeji ni akoko kanna (fun apẹẹrẹ, “DIY” + “microcontrollers” + “C ++”). Mo lo “profaili” yiyan lati ṣe afihan awọn nkan profaili lori aaye naa, botilẹjẹpe boya profaili ọrọ Gẹẹsi fun eyi ko pe patapata.
Ni apakan ti tẹlẹ a beere nipa “ipa geektimes” ti o ni nkan ṣe pẹlu iyipada ninu awọn ofin isanwo fun awọn nkan fun awọn geektimes ti o bẹrẹ ni igba ooru yii. Jẹ ki a ṣe afihan awọn nkan geektimes lọtọ:
Abajade jẹ iyanilenu. Ipin isunmọ ti awọn iwo ti awọn nkan geektimes si lapapọ jẹ ibikan ni ayika 1:5. Ṣugbọn lakoko ti nọmba lapapọ ti awọn iwo yipada ni akiyesi, wiwo awọn nkan “idaraya” wa ni isunmọ ipele kanna.
O tun le ṣe akiyesi pe nọmba lapapọ ti awọn iwo ti awọn nkan ni apakan “geektimes” tun ṣubu lẹhin iyipada awọn ofin, ṣugbọn “nipasẹ oju”, laisi diẹ sii ju 5% ti awọn iye lapapọ.
O jẹ ohun ti o nifẹ lati wo nọmba apapọ ti awọn iwo fun nkan kan:
Fun awọn nkan “idaraya” o jẹ nipa 40% loke apapọ. Eleyi jẹ jasi ko yanilenu. Ikuna ni ibẹrẹ Oṣu Kẹrin ko ṣe akiyesi fun mi, boya iyẹn ni ohun ti o ṣẹlẹ, tabi o jẹ diẹ ninu iru aṣiṣe ti n ṣalaye, tabi boya ọkan ninu awọn onkọwe geektimes lọ si isinmi;).
Nipa ọna, aworan naa fihan awọn oke giga meji ti o ṣe akiyesi ni nọmba awọn iwo ti awọn nkan - Ọdun Titun ati awọn isinmi May.
Awọn ibudo
Jẹ ki a lọ siwaju si igbekale ileri ti awọn ibudo. Jẹ ki a ṣe atokọ awọn ibudo 20 ti o ga julọ nipasẹ nọmba awọn iwo:
Ati nikẹhin, ki ẹnikẹni ko ba binu, Emi yoo fun ni idiyele ti ibudo ti o kere julọ “gtk”. Laarin odun kan ti o ti atejade ọkan Nkan naa, eyiti o tun “laifọwọyi” wa laini akọkọ ti idiyele naa.