Habrastatistics: сайттын эң көп жана эң аз кирген бөлүмдөрүн изилдөө
Эй Хабр.
В мурунку бөлүгү Хабрдын трафики негизги параметрлер боюнча талданган - макалалардын саны, алардын көз караштары жана рейтинги. Бирок, сайт бөлүмдөрүнүн популярдуулугу маселеси каралбай калган. Муну кененирээк карап чыгуу жана эң популярдуу жана эң популярдуу эмес хабтарды табуу кызыктуу болду. Акырында, мен жаңы рейтингдердин негизинде мыкты макалалардын жаңы тандоосу менен аяктап, geektimes эффектин кененирээк карап чыгам.
Болгон окуяга кызыккандар үчүн уландысы үзүндү.
Дагы бир жолу эскерте кетейин, статистика жана рейтингдер расмий эмес, менде эч кандай инсайдердик маалымат жок. Ошондой эле мен бир жерден ката кетирген жокмун же бир нерсени өткөрүп жиберген жокмун деген кепилдик жок. Бирок баары бир кызыктуу болду деп ойлойм. Биз алгач коддон баштайбыз, буга кызыкпагандар биринчи бөлүмдөрдү өткөрүп жибериши мүмкүн.
Маалымат чогултуу
Талдоочунун биринчи версиясында көрүүлөрдүн, комментарийлердин жана макаланын рейтингинин саны гана эске алынган. Бул мурунтан эле жакшы, бирок ал татаал суроолорду берүүгө жол бербейт. Сайттын тематикалык бөлүмдөрүн талдап чыгууга убакыт келди, бул сизге абдан кызыктуу изилдөөлөрдү жүргүзүүгө мүмкүндүк берет, мисалы, "C++" бөлүмүнүн популярдуулугу бир нече жыл ичинде кандай өзгөргөнүн көрүүгө болот.
Макала талдоочу жакшыртылды, эми ал макала таандык болгон борборлорду, ошондой эле автордун лакап атын жана анын рейтингин кайтарат (бул жерде да көп кызыктуу нерселерди кылса болот, бирок бул кийинчерээк келет). Маалыматтар csv файлында сакталат, ал төмөнкүдөй көрүнөт:
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
...
Биз сайттын негизги тематикалык борборлорунун тизмесин алабыз.
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_between функциясы жана Str классы эки тегдин ортосундагы сапты тандайт, мен аларды колдондум мурун. Тематикалык борборлор "*" белгиси менен белгиленет, ошондуктан аларды оңой бөлүп көрсөтүүгө болот, ошондой эле башка категориялардын бөлүмдөрүн алуу үчүн тиешелүү саптарды чечмелей аласыз.
get_hubs функциясынын натыйжасы биз сөздүк катары сактаган абдан таасирдүү тизме. Анын көлөмүн баалай алышыңыз үчүн мен атайын тизмени толугу менен сунуштап жатам.
Биз Matplotlib аркылуу жарыяланган макалалардын санын көрсөтөбүз:
Мен диаграммада "geektimes" жана "geektimes гана" макалаларын бөлдүм, анткени Макала бир эле учурда эки бөлүмгө тең тиешелүү болушу мүмкүн (мисалы, "DIY" + "микроконтроллерлор" + "C++"). Мен сайттагы профилдик макалаларды бөлүп көрсөтүү үчүн "профиль" деген белгини колдондум, бирок бул үчүн англисче профиль деген термин такыр туура эмес.
Мурунку бөлүктө биз ушул жайдан баштап geektimes үчүн макалалар үчүн төлөм эрежелеринин өзгөрүшүнө байланыштуу "geektimes эффекти" жөнүндө сураганбыз. Geektimes макалаларын өзүнчө көрсөтөлү:
Натыйжа кызыктуу. Geektimes макалаларынын жалпыга болгон болжолдуу катышы 1:5тин тегерегинде. Бирок көрүүлөрдүн жалпы саны байкаларлык өзгөрүп турганы менен, "көңүл ачуучу" макалаларды көрүү болжол менен бирдей деңгээлде калган.
Ошондой эле, "geektimes" бөлүмүндөгү макалаларды көрүүлөрдүн жалпы саны эрежелерди өзгөрткөндөн кийин дагы эле азайгандыгын байкай аласыз, бирок "көз менен" жалпы маанилердин 5% дан ашпаганга.
Бир макаланы көрүүлөрдүн орточо санын көрүү кызыктуу:
"Көңүл ачуу" макалалары үчүн бул орточо 40% жогору. Бул, балким, таң калыштуу эмес. Апрель айынын башындагы ийгиликсиздик мага түшүнүксүз, балким ушундай болгондур, же кандайдыр бир талдоо катасы, же балким, geektimes авторлорунун бири эс алууга кеткендир;).
Баса, графикте макалалардын көрүүлөрүнүн дагы эки байкаларлык чокусу – Жаңы жыл жана май майрамдары көрсөтүлгөн.
Хабдар
Келгиле, борборлордун убада кылынган анализине өтөбүз. Көрүүлөрдүн саны боюнча эң мыкты 20 хабды тизмектеп көрөлү:
Таң калыштуусу, көз караштар боюнча эң популярдуу борбор болуп "Маалымат коопсуздугу" болгон;
Antitop Gtk жана Какаону ээлейт.
Мен сизге сыр айтам, жогорку түйүндөрдү да көрүүгө болот бул жерде, ал жерде көрүүлөрдүн саны көрсөтүлбөсө да.
рейтинг
Акыр-аягы, убадаланган рейтинг. Хаб талдоо маалыматтарын колдонуу менен, биз 2019-жылдын эң популярдуу хабтары үчүн эң популярдуу макалаларды көрсөтө алабыз.
Акыр-аягы, эч ким таарынбашы үчүн, мен эң аз кирген хабдын рейтингин "gtk" берем. Бир жылдын ичинде ал басылып чыкты одна макала, ошондой эле "автоматтык түрдө" рейтингдин биринчи сабын ээлейт.