ПроХостер > блог > интернет вести > Хабрастатистика: истраживање најпосећенијих и најмање посећених делова сајта
Хабрастатистика: истраживање најпосећенијих и најмање посећених делова сајта
Хеј Хабр.
В претходни део Хабров саобраћај је анализиран према главним параметрима – броју чланака, њиховим прегледима и оценама. Међутим, питање популарности секција сајта остало је неиспитано. Постало је занимљиво погледати ово детаљније и пронаћи најпопуларније и најнепопуларније чворишта. Коначно, детаљније ћу погледати ефекат геектимеса, завршавајући новим избором најбољих чланака на основу нових рангирања.
За оне које занима шта се десило, наставак је испод реза.
Још једном да подсетим да статистика и рејтинг није званичан, немам инсајдерске информације. Такође није гарантовано да нисам негде погрешио или нешто пропустио. Али ипак, мислим да је испало занимљиво. Прво ћемо почети са кодом; они које ово не занима могу прескочити прве одељке.
Прикупљање података
У првој верзији парсера узет је у обзир само број прегледа, коментара и оцена чланака. Ово је већ добро, али вам не дозвољава да правите сложеније упите. Време је да анализирате тематске делове сајта; ово ће вам омогућити да урадите прилично занимљиво истраживање, на пример, да видите како се популарност одељка „Ц++“ променила током неколико година.
Парсер чланка је побољшан, сада враћа чворишта којима чланак припада, као и надимак аутора и његову оцену (и овде се може урадити много занимљивих ствари, али то ће бити касније). Подаци се чувају у цсв датотеци која изгледа отприлике овако:
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)
Функција финд_бетвеен и класа Стр бирају низ између две ознаке, ја сам их користио раније. Тематска чворишта су означена са „*“ тако да се лако могу истаћи, а такође можете да скинете коментар са одговарајућих редова да бисте добили одељке других категорија.
Излаз функције гет_хубс је прилично импресивна листа, коју чувамо као речник. Листу посебно представљам у целини како бисте могли да процените њен обим.
Преостала чворишта су сачувана на исти начин. Сада је лако написати функцију која враћа резултат без обзира да ли чланак припада геектимес или чворишту профила.
Приказујемо број објављених чланака користећи Матплотлиб:
Поделио сам чланке „геектимес“ и „геектимес онли“ у графикону, јер Чланак може припадати оба одељка истовремено (на пример, „уради сам“ + „микроконтролери“ + „Ц++“). Користио сам ознаку „профил“ да бих истакао чланке профила на сајту, мада можда енглески израз профил за ово није сасвим тачан.
У претходном делу смо питали о „геектимес ефекту“ који је повезан са променом правила плаћања за чланке за геектимес од овог лета. Хајде да прикажемо геектимес чланке одвојено:
Резултат је занимљив. Приближан однос прегледа геектимес чланака према укупном је негде око 1:5. Али док је укупан број прегледа приметно флуктуирао, гледаност „забавних“ чланака остала је на приближно истом нивоу.
Такође можете приметити да је укупан број прегледа чланака у одељку „геектимес“ и даље опао након промене правила, али „на око“, не више од 5% од укупних вредности.
Занимљиво је погледати просечан број прегледа по чланку:
За "забавне" чланке то је око 40% изнад просека. Ово вероватно није изненађујуће. Неуспех почетком априла ми је нејасан, можда се то десило, или је у питању нека грешка у рашчлањивању, или је можда неко од аутора геектимеса отишао на одмор ;).
Иначе, на графикону се виде још два уочљива врхунца у броју прегледа чланака – новогодишњи и мајски празници.
Чворишта
Пређимо на обећану анализу чворишта. Хајде да наведемо 20 најбољих центара по броју прегледа:
Изненађујуће, најпопуларније средиште у погледу прегледа била је „Информациона безбедност“; међу првих 5 лидера су такође били „Програмирање“ и „Популарне науке“.
Антитоп заузима Гтк и Какао.
Одаћу вам тајну, могу се видети и врхунска чворишта овде, иако број прегледа тамо није приказан.
Оцењивање
И коначно, обећани рејтинг. Користећи податке анализе чворишта, можемо приказати најпопуларније чланке за најпопуларније чворишта за ову 2019. годину.
И на крају, да се нико не увреди, даћу оцену најмање посећеног чворишта „гтк“. У року од годину дана је објављен одна Чланак, који такође „аутоматски“ заузима први ред оцене.