Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Rehefa vita ny taom-baovao Olivier dia tsy nisy na inona na inona nataoko, ary nanapa-kevitra ny hisintona ny lahatsoratra rehetra avy amin'ny Habrahabr (sy ireo sehatra mifandraika amin'izany) ao amin'ny solosiko aho ary hijery.

Nisy tantara mahaliana maromaro. Ny voalohany amin'izy ireo dia ny fampivoarana ny endrika sy lohahevitry ny lahatsoratra nandritra ny 12 taona nisian'ny tranokala. Ohatra, ny dinamika amin'ny lohahevitra sasany dia tena manondro. Fitohizan'ny - eo ambanin'ny fanapahana.

Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Dingan'ny parsing

Mba hahatakarana ny fomba nivoaran'i Habr, dia nilaina ny nandeha namaky ny lahatsorany rehetra ary naka ny meta-information avy amin'izy ireo (ohatra, daty). Mora ny fandalovana, satria mitovy amin'ny "habrahabr.ru/post/337722/" ny rohy mankany amin'ny lahatsoratra rehetra, ary nomena araka ny tokony ho izy ny isa. Noho ny fahafantarako fa ny lahatsoratra farany dia manana isa latsaka kely noho ny 350 arivo, dia nandalo fotsiny ny id rehetra mety ho antontan-taratasy aho (code Python):

import numpy as np
from multiprocessing import Pool
with Pool(100) as p:
    docs = p.map(download_document, np.arange(350000))

asa download_document manandrana mameno ny pejy miaraka amin'ny id mifanaraka amin'izany ary manandrana maka fampahalalana manan-danja avy amin'ny rafitra html.

import requests
from bs4 import BeautifulSoup

def download_document(pid):
    """ Download and process a Habr document and its comments """
    # выгрузка документа
    r = requests.get('https://habrahabr.ru/post/' +str(pid) + '/')
    # парсинг документа
    soup = BeautifulSoup(r.text, 'html5lib') # instead of html.parser
    doc = {}
    doc['id'] = pid
    if not soup.find("span", {"class": "post__title-text"}):
        # такое бывает, если статья не существовала или удалена
        doc['status'] = 'title_not_found'
    else:
        doc['status'] = 'ok'
        doc['title'] = soup.find("span", {"class": "post__title-text"}).text
        doc['text'] = soup.find("div", {"class": "post__text"}).text
        doc['time'] = soup.find("span", {"class": "post__time"}).text
        # create other fields: hubs, tags, views, comments, votes, etc.
        # ...
    # сохранение результата в отдельный файл
    fname = r'files/' + str(pid) + '.pkl'
    with open(fname, 'wb') as f:
        pickle.dump(doc, f)

Tao anatin'ny dingan'ny famakafakana dia nahita zava-baovao maromaro aho.

Voalohany, lazain'izy ireo fa tsy misy ilana azy ny famoronana dingana maro kokoa noho ny misy cores ao amin'ny processeur. Fa raha ny amiko, dia hita fa ny loharano mametra dia tsy ny processeur, fa ny tambajotra, ary ny dingana 100 dia mandeha haingana kokoa noho ny 4 na, ohatra, 20.

Faharoa, tao amin'ny lahatsoratra sasany dia nisy fitambarana tarehintsoratra manokana - ohatra, euphemisms toy ny "%&#@". Hay izay html.parser, izay nampiasako voalohany, dia mamaly ny fitambarana &# Mampalahelo, raha jerena ny fiandohan'ny enti-manana html. Efa hanao mazia mainty aho, fa ny forum dia nanoro hevitra fa azonao atao ny manova ny parser.

Fahatelo, vitako ny namoaka ny boky rehetra, afa-tsy ny telo. Ireo antontan-taratasy misy laharana 65927, 162075, ary 275987 dia nofafan'ny antivirus-ko avy hatrany. Ireo dia lahatsoratra, tsirairay avy, momba ny rojo javascript izay misintona pdf ratsy, SMS ransomware amin'ny endrika andiana plugins navigateur, ary ny tranokala CrashSafari.com izay mandefa iPhones ho reboot. Nahita lahatsoratra hafa ny Antivirus taty aoriana, nandritra ny fitarafana rafitra: mandefa 338586 momba ny script ao amin'ny tranokala fivarotana biby izay mampiasa ny processeur an'ny mpampiasa amin'ny fitrandrahana cryptocurrency. Noho izany dia azo heverina fa ny asan'ny antivirus dia ampy.

Ny lahatsoratra "Mivantana" dia nivadika ho antsasaky ny mety ho ambony indrindra - ampahany 166307. Momba ny ambiny, Habr dia manome safidy "ny pejy dia efa lany andro, voafafa na tsy nisy mihitsy." Eny, mety hitranga na inona na inona.

Ny fandefasana lahatsoratra dia narahin'ny asa teknika: ohatra, ny datin'ny famoahana dia tsy maintsy avadika amin'ny endrika "'21 Desambra 2006 amin'ny 10:47 maraina" ho amin'ny fenitra. datetime, ary ny fijery "12,8k" - tamin'ny 12800. Tamin'ity dingana ity dia nisy tranga vitsivitsy nivoaka. Ny tena mahatsikaiky dia misy ifandraisany amin'ny fanisam-bato sy karazana angon-drakitra: ny lahatsoratra taloha sasany dia nihoatra ny int ary nahazo vato 65535 avy.

Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Vokatr'izany, ny lahatsoratry ny lahatsoratra (tsy misy sary) dia nitondra ahy 1.5 gigabytes, fanehoan-kevitra misy meta-information - 3 hafa, ary zato megabytes - meta-information momba ny lahatsoratra. Izany dia azo tazonina tanteraka ao amin'ny RAM, izay nahafinaritra ahy.

Nanomboka ny famakafakana lahatsoratra tsy avy amin'ny lahatsoratra mihitsy aho, fa avy amin'ny meta-information: daty, marika, hub, fijery ary tia. Hita fa nahay nitantara zavatra maro izy.

Habrahabr Development Trends

Navoaka hatramin'ny 2006 ny lahatsoratra ao amin'ny tranokala; indrindra - tamin'ny 2008-2016.

Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Tsy mora ny fanombanana ny fomba nazoto namaky ireo lahatsoratra ireo tamin'ny fotoana samihafa. Nahazo fanehoan-kevitra sy naoty bebe kokoa ny lahatsoratra tamin'ny 2012 sy ny tanora kokoa, fa ny lahatsoratra vaovao kokoa dia manana fijery sy tsoratadidy bebe kokoa. Indray mandeha ihany, tamin'ny 2015, ireo metrika ireo Angamba, ao anatin'ny krizy ara-toekarena sy ara-politika, ny sain'ny mpamaky dia nifindra avy amin'ny bilaogy IT ho amin'ny olana mampahory kokoa.

Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Ho fanampin'ireo lahatsoratra ireo dia nakako hevitra bebe kokoa ho azy ireo aho. Nisy fanehoan-kevitra 6 tapitrisa, na izany aza, voarara ny 240 ("Nisy OVNI iray niditra ary namoaka ity soratra ity teto"). Ny fananana mahasoa amin'ny fanehoan-kevitra dia manana mari-pamantarana fotoana izy ireo. Amin'ny alalan'ny fandalinana ny fotoana fanehoan-kevitra, dia ho azonao amin'ny ankapobeny rehefa mamaky lahatsoratra mihitsy.

Hita fa ny ankamaroan'ny lahatsoratra dia samy nosoratana no nanehoana hevitra tany ho any amin'ny 10 ora maraina ka hatramin'ny 20 ora alina, izany hoe. amin'ny andro fiasana mahazatra ao Moskoa. Mety hidika izany fa vakiana ho an'ny tanjona matihanina ny Habr, ary izany dia fomba tsara hanemorana ny asa. Raha ny marina, io fizarana ny fotoanan'ny andro io dia tsy miova hatramin'ny fototry ny Habr ka hatramin'izao.

Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Na izany aza, ny tombony lehibe indrindra amin'ny famantarana famantarana famantarana dia tsy ny andro, fa ny faharetan'ny "fiainana mavitrika" ny lahatsoratra. Nokajiko ny fomba nizarana ny fotoana nanomboka tamin’ny famoahana ilay lahatsoratra ka hatramin’ny fanehoan-kevitra. Hita fa tonga ao anatin'ny 20 ora eo ho eo ny fanehoan-kevitra mediana (tsipika maitso), i.e. amin'ny andro voalohany aorian'ny famoahana, amin'ny antsasany mahery kely amin'ny fanehoan-kevitra rehetra momba ilay lahatsoratra no tavela. Ary ao anatin'ny roa andro dia mamela ny 75% amin'ny fanehoan-kevitra rehetra izy ireo. Mandritra izany fotoana izany, ny lahatsoratra teo aloha dia novakiana haingana kokoa - ohatra, tamin'ny 2010, ny antsasaky ny fanehoan-kevitra dia tonga tao anatin'ny 6 ora voalohany.

Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Nahagaga ahy fa nihalava ny fanehoan-kevitra: efa ho avo roa heny ny salan'isan'ny tarehin-tsoratra ao amin'ny fanehoan-kevitra iray nandritra ny androm-piainan'i Habr!

Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Ny valiny mora kokoa noho ny fanehoan-kevitra dia vato. Tsy toy ny loharano maro hafa, amin'ny Habré dia azonao atao ny mametraka tsy pluses, fa koa minuses. Na izany aza, ny mpamaky dia tsy mampiasa ny fotoana farany matetika: ny ampahany amin'ny tsy tia amin'izao fotoana izao dia eo amin'ny 15% amin'ny vato rehetra azo. Mbola betsaka kokoa izany taloha, saingy rehefa nandeha ny fotoana dia nanjary tsara fanahy ny mpamaky.

Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Ny soratra mihitsy no niova rehefa nandeha ny fotoana. Ohatra, ny halavan'ny lahatsoratra dia tsy mitsahatra mitombo hatrany amin'ny fanombohana ny tranokala, na dia eo aza ny krizy. Tao anatin’ny folo taona, efa ho avo folo heny ny lahatsoratra!

Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Niova koa ny fomba fiasan'ny lahatsoratra (amin'ny tombantombana voalohany). Nandritra ireo taona voalohany nisian'i Habr, ohatra, dia nitombo ny ampahany amin'ny code sy isa amin'ny lahatsoratra:

Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Rehefa avy nahatakatra ny fihetsehana ankapobeny amin'ny tranokala aho dia nanapa-kevitra ny handrefesana ny fiovan'ny lazan'ny lohahevitra isan-karazany. Ny lohahevitra dia azo voafantina ho azy avy amin'ny lahatsoratra, fa ho an'ny fanombohana, tsy afaka mamorona indray ny kodiarana ianao, fa mampiasa marika efa vita apetaka amin'ny mpanoratra ny lahatsoratra tsirairay. Nahita fironana mahazatra efatra teo amin'ny tabilao aho. Ny lohahevitry ny "Google" dia nanjaka tamin'ny voalohany (angamba noho ny SEO indrindra), saingy nihena nandritra ny taona maro. Lohahevitra malaza ny Javascript ary tsy mitsaha-mitombo tsikelikely, fa ny fianarana milina dia nanomboka nahazo laza haingana tato anatin'ny taona vitsivitsy. Linux, etsy ankilany, dia nitoetra ho manan-danja ihany nandritra ny folo taona.

Ahoana no nanazavako an'i Habr, fizarana 1: fironana

Mazava ho azy fa lasa liana amin'izay lohahevitra mahasarika mpamaky bebe kokoa aho. Nokajiko ny isan'ny median'ny fijery, vato ary fanehoan-kevitra isaky ny lohahevitra. Izao no nitranga:

  • Lohahevitra be mpijery indrindra: arduino, famolavolana tranonkala, fampivoarana tranonkala, digest, rohy, css, html, html5, nginx, algorithms.
  • Ny lohahevitra "tia" indrindra: vkontakte, hatsikana, jquery, opera, c, html, fampivoarana tranonkala, html5, css, famolavolana tranonkala.
  • Ny lohahevitra resahina indrindra: opera, skype, freelance, vkontakte, ubuntu, asa, nokia, nginx, arduino, firefox.

Raha ny marina, satria mampitaha lohahevitra aho dia azonao atao ny mametraka azy ireo amin'ny alàlan'ny matetika (ary mampitaha ny valiny amin'ny lahatsoratra mitovitovy tamin'ny 2013).

  • Nandritra ny taona rehetra nisian'i Habr, ny marika malaza indrindra (amin'ny filaharana midina) dia google, android, javascript, microsoft, linux, php, apple, java, python, programming, startups, development, ios, startup, social networks.
  • Tamin'ny taona 2017, ny malaza indrindra dia javascript, python, java, android, development, linux, c++, programming, php, c#, ios, machine learning, information security, microsoft, react

Rehefa mampitaha ireo naoty ireo dia afaka mandinika, ohatra, ny diabe mpandresy an'i Python sy ny famongorana ny php, na ny "masoandron'ny masoandro" amin'ny lohahevitra fanombohana sy ny fiakaran'ny fianarana milina.

Tsy ny tag rehetra ao amin'ny Habré no manana fandokoana lohahevitra miharihary toy izany. Ohatra, ireto misy marika am-polony izay nihaona indray mandeha, saingy toa mampihomehy ahy fotsiny. Noho izany: "ny hevitra no hery manosika ny fandrosoana", "boot from a floppy disk image", "Iowa State", "drama", "superalesh", "motera etona", "zavatra hatao amin'ny asabotsy", "Manana aho. amboahaolo ao anaty fitotoana hena", "a dia nipoitra toy ny mahazatra", "tsy afaka namoaka marika mampihomehy izahay". Mba hamaritana ny lohahevitry ny lahatsoratra toy izany dia tsy ampy ny marika - tsy maintsy manao modely amin'ny lohahevitra amin'ny lahatsoratry ny lahatsoratra ianao.

Ny famakafakana amin'ny antsipiriany bebe kokoa momba ny votoatin'ny lahatsoratra dia ho hita ao amin'ny lahatsoratra manaraka. Voalohany, hanorina modely aho izay maminavina ny isan'ny fijerena pejy ho an'ny lahatsoratra iray mifototra amin'ny atiny. Faharoa, te-hampianatra ny tambajotra neural aho hamorona lahatsoratra mitovy amin'ireo mpanoratra ny Habr. Koa misoratra anarana 🙂

PS Ary ity ny bip dataset.

Source: www.habr.com

Add a comment