ProHoster > блог > интернет вести > Хабрастатистика: истражување на најмногу и најмалку посетените делови на страницата
Хабрастатистика: истражување на најмногу и најмалку посетените делови на страницата
Еј Хабр.
В претходниот дел Сообраќајот на Хабр беше анализиран според главните параметри - бројот на статии, нивните погледи и оценки. Сепак, прашањето за популарноста на деловите на страницата остана неиспитано. Стана интересно да се погледне ова подетално и да се најдат најпопуларните и најнепопуларните центри. Конечно, ќе го разгледам ефектот 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 е прилично импресивна листа, која ја зачувуваме како речник. Конкретно го прикажувам списокот во целост за да можете да го процените неговиот волумен.
Останатите центри беа зачувани на ист начин. Сега е лесно да се напише функција која го враќа резултатот, без разлика дали статијата припаѓа на geektimes или на центар на профилот.
Го прикажуваме бројот на објавени статии користејќи Matplotlib:
Ги поделив написите „geektimes“ и „geektimes only“ во табелата, затоа што Статијата може да припаѓа на двата дела во исто време (на пример, „DIY“ + „микроконтролери“ + „C++“). Ја користев ознаката „профил“ за да ги истакнам написите на профилот на страницата, иако можеби англискиот термин профил за ова не е сосема точен.
Во претходниот дел тие прашаа за „ефектот geektimes“ поврзан со промената на правилата за плаќање на написите за geektimes ова лето. Ајде да ги прикажеме написите на geektimes одделно:
Резултатот е интересен. Приближниот сооднос на прегледите на статиите на geektimes со вкупниот број е некаде околу 1:5. Но, додека вкупниот број на прегледи значително флуктуираше, гледаноста на написите за „забава“ остана на приближно исто ниво.
Можете исто така да забележите дека вкупниот број на прегледи на статии во делот „geektimes“ сепак падна по промената на правилата, но „на око“, за не повеќе од 5% од вкупните вредности.
Интересно е да се погледне просечниот број на прегледи по статија:
За написите за „забава“ тоа е околу 40% над просекот. Ова веројатно не е изненадувачки. Неуспехот на почетокот на април ми е неразбирлив, можеби тоа е она што се случило, или е некаква грешка при парсирање или можеби некој од авторите на geektimes отишол на одмор ;).
Патем, графикот покажува уште два забележливи врвови во бројот на прегледи на статии - новогодишните и мајските празници.
Хабови
Да преминеме на ветената анализа на хабовите. Ајде да ги наведеме најдобрите 20 центри по број на прегледи:
Изненадувачки, најпопуларниот центар во однос на погледите беше „Информациската безбедност“ меѓу првите 5 лидери, исто така, „Програмирање“ и „Популарна наука“.
Антитоп ги зафаќа Гтк и Какао.
Ќе ти кажам една тајна, се гледаат и врвните хабови тука, иако бројот на прегледи не е прикажан таму.
Оценка
И конечно, ветениот рејтинг. Користејќи ги податоците за анализа на центри, можеме да ги прикажеме најпопуларните статии за најпопуларните центри за оваа 2019 година.
И, конечно, за никој да не се навреди, ќе дадам оцена на најмалку посетениот центар „gtk“. Во рок од една година беше објавен еден Написот, кој исто така „автоматски“ ја зазема првата линија на рејтингот.