Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

የአዲስ አመት ኦሊቪየር ሲጠናቀቅ ምንም የማደርገው ነገር አልነበረም እና ሁሉንም መጣጥፎች ከሀብርሀብር (እና ተዛማጅ መድረኮች) ወደ ኮምፒውተሬ ለማውረድ ወሰንኩኝ.

በርካታ አስደሳች ታሪኮች ነበሩ. የመጀመሪያው የጣቢያው ሕልውና በ 12 ዓመታት ውስጥ የጽሑፎችን ቅርጸት እና ርዕሶችን ማዳበር ነው። ለምሳሌ፣ የአንዳንድ ርእሶች ተለዋዋጭነት በጣም አመላካች ነው። ቀጣይ - በቆራጩ ስር.

Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

የመተንተን ሂደት

ሀብር እንዴት እንዳዳበረ ለመረዳት ሁሉንም ጽሑፎቹን ማለፍ እና ከነሱ (ለምሳሌ ፣ ቀናት) ሜታ-መረጃዎችን ማውጣት አስፈላጊ ነበር ። ማለፊያው ቀላል ነበር፣ ምክንያቱም የሁሉም መጣጥፎች አገናኞች "habrahabr.ru/post/337722/" ስለሚመስሉ እና ቁጥሮቹ በቅደም ተከተል የተሰጡ ናቸው። የመጨረሻው ልጥፍ ቁጥር በትንሹ ከ350 ሺህ በታች መሆኑን እያወቅኩ ሁሉንም ሊሆኑ የሚችሉ የሰነድ መታወቂያዎችን በ loop (Python code):

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

ሥራ download_document ገጹን በተዛማጅ መታወቂያ ለመጫን ይሞክራል እና ከኤችቲኤምኤል መዋቅር ትርጉም ያለው መረጃ ለማውጣት ይሞክራል።

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)

በመተንተን ሂደት ውስጥ፣ ብዙ አዳዲስ ነገሮችን አግኝቻለሁ።

በመጀመሪያ, በማቀነባበሪያው ውስጥ ካሉት ኮርሶች የበለጠ ብዙ ሂደቶችን መፍጠር ምንም ፋይዳ የለውም ይላሉ. ግን በእኔ ሁኔታ ፣ ​​የተገደበው ሀብት ማቀነባበሪያው ሳይሆን አውታረመረብ ነው ፣ እና 100 ሂደቶች ከ 4 ወይም ከ 20 በበለጠ ፍጥነት ይሰራሉ።

በሁለተኛ ደረጃ፣ በአንዳንድ ልጥፎች ላይ የልዩ ገፀ-ባህሪያት ውህዶች ነበሩ - ለምሳሌ፣ እንደ "%& # @" ያሉ ንግግሮች። እንደሆነ ታወቀ html.parserበመጀመሪያ እኔ የተጠቀምኩበት, ለጥምረቱ ምላሽ ይሰጣል &# የኤችቲኤምኤል ህጋዊ አካል መጀመሪያ እንደሆነ ከግምት በማስገባት በሚያሳዝን ሁኔታ። አስቀድሜ ጥቁር አስማት ላደርግ ነበር፣ ነገር ግን መድረኩ ተንታኙን ብቻ መቀየር እንድትችል ጠቁሟል።

በሶስተኛ ደረጃ፣ ከሶስቱ በስተቀር ሁሉንም ህትመቶች ማውረድ ቻልኩ። 65927፣ 162075 እና 275987 ቁጥር ያላቸው ሰነዶች በጸረ ቫይረስዬ ወዲያውኑ ተሰረዙ። እነዚህ እንደቅደም ተከተላቸው፣ ስለ ጃቫስክሪፕት ሰንሰለት ተንኮል አዘል ፒዲኤፍ ስለሚያወርድ፣ SMS ransomware በአሳሽ ፕለጊኖች መልክ፣ እና የCrashSafari.com ድረ-ገጽ አይፎኖችን ወደ ዳግም ማስጀመር የሚልክ ጽሁፎች ናቸው። ጸረ ቫይረስ በስርዓት ቅኝት ወቅት ሌላ መጣጥፍ አግኝቷል፡ በፔት ማከማቻ ድህረ ገጽ ላይ የተጠቃሚውን ፕሮሰሰር የሚጠቀሙ ክሪፕቶፕ 338586 ይለጥፉ። ስለዚህ የጸረ-ቫይረስ ስራ በጣም በቂ እንደሆነ ልንቆጥረው እንችላለን.

"ቀጥታ" መጣጥፎች ሊሆኑ ከሚችሉት ከፍተኛው ግማሽ ብቻ - 166307 ቁርጥራጮች ሆነዋል። ስለ ቀሪው ፣ ሀብር አማራጮችን ይሰጣል "ገጹ ጊዜው ያለፈበት ነው ፣ ተሰርዟል ወይም በጭራሽ የለም"። ደህና, ማንኛውም ነገር ሊከሰት ይችላል.

ጽሑፎችን መጫን በቴክኒካል ሥራ ተከትሏል፡ ለምሳሌ የህትመት ቀናት ከ"21 December 2006 በ10:47 am" ወደ መደበኛው መቀየር ነበረባቸው። datetime, እና "12,8k" እይታዎች - በ 12800. በዚህ ደረጃ, ጥቂት ተጨማሪ ክስተቶች ወጡ. በጣም አስቂኝ የሆነው ከድምጽ ቆጠራዎች እና የውሂብ አይነቶች ጋር የተያያዘ ነው፡ አንዳንድ የቆዩ ልጥፎች ከመጠን ያለፈ ፍሰት ነበራቸው እና እያንዳንዳቸው 65535 ድምጽ አግኝተዋል።

Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

በውጤቱም, የጽሁፎች ጽሑፎች (ስዕሎች የሌሉበት) 1.5 ጊጋባይት ወስደዋል, አስተያየቶች ከሜታ-መረጃ ጋር - ሌላ 3, እና ወደ አንድ መቶ ሜጋባይት - ስለ መጣጥፎች ሜታ-መረጃ. ይህ ሙሉ በሙሉ በ RAM ውስጥ ሊቀመጥ ይችላል, ይህም ለእኔ አስደሳች አስገራሚ ነበር.

የጽሑፎቹን ትንተና የጀመርኩት ከራሳቸው ከጽሑፎቹ ሳይሆን ከሜታ መረጃ፡ ቀኖች፣ መለያዎች፣ መገናኛዎች፣ እይታዎች እና መውደዶች ነው። ብዙ መናገር እንደምትችል ታወቀ።

የሀብረሀብር የልማት አዝማሚያዎች

ከ 2006 ጀምሮ በጣቢያው ላይ ጽሑፎች ታትመዋል. በጣም የተጠናከረ - በ2008-2016.

Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

እነዚህ ጽሑፎች በተለያዩ ጊዜያት ምን ያህል በንቃት እንደተነበቡ ለመገምገም ቀላል አይደለም። ከ2012 እና ከዚያ በታች ያሉ ጽሑፎች ተጨማሪ አስተያየቶችን እና ደረጃዎችን ተቀብለዋል፣ ነገር ግን አዳዲስ ጽሑፎች ብዙ እይታዎች እና ዕልባቶች አሏቸው። እነዚህ መለኪያዎች በ2015 አንድ ጊዜ ብቻ ተመሳሳይ ባህሪ አሳይተዋል። ምናልባት፣ በኢኮኖሚና በፖለቲካዊ ቀውስ ውስጥ፣ የአንባቢዎች ትኩረት ከአይቲ ብሎጎች ወደ ይበልጥ አሳማሚ ጉዳዮች ተዘዋውሯል።

Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

ከጽሑፎቹ በተጨማሪ፣ ተጨማሪ አስተያየቶችን አውርጃለሁ። 6 ሚሊዮን አስተያየቶች ነበሩ ፣ ግን 240 ሺህ የሚሆኑት ታግደዋል ("አንድ ዩፎ በረረ እና ይህንን ጽሑፍ እዚህ አሳተመ") ። የአስተያየቶች ጠቃሚ ንብረት የጊዜ ማህተም ስላላቸው ነው። የአስተያየቶችን ጊዜ በማጥናት, መጣጥፎች ሲነበቡ በደንብ መረዳት ይችላሉ.

አብዛኞቹ መጣጥፎች የተጻፉትም ሆነ አስተያየት የሚሰጡት ከጠዋቱ 10 ሰዓት እስከ ምሽቱ 20 ሰዓት እንደሆነ ታወቀ፣ ማለትም። በተለመደው የሞስኮ የስራ ቀን. ይህ ማለት ሀብር የሚነበበው ለሙያዊ ዓላማ ነው፣ እና ይህ በስራ ላይ ለማዘግየት ጥሩ መንገድ ነው ማለት ነው። በነገራችን ላይ ይህ የወቅቱ ስርጭት ከሀብር መሰረት ጀምሮ እስከ ዛሬ ድረስ የተረጋጋ ነው.

Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

ነገር ግን፣ የአስተያየት ጊዜ ማህተም ዋነኛው ጥቅም የቀን ሰዓት አይደለም፣ ነገር ግን የጽሑፉ "ንቁ ህይወት" የሚቆይበት ጊዜ ነው። ሰዓቱ ከጽሁፉ ህትመት እስከ አስተያየቱ ድረስ እንዴት እንደሚሰራጭ አስላለሁ። አሁን መካከለኛ አስተያየት (አረንጓዴ መስመር) በ 20 ሰዓታት ውስጥ ይመጣል ፣ ማለትም። ከታተመ በኋላ በመጀመሪያው ቀን በአማካይ በአንቀጹ ላይ ከተሰጡት አስተያየቶች ውስጥ ከግማሽ በላይ የሚሆኑት ይቀራሉ. እና በሁለት ቀናት ውስጥ 75% ከሁሉም አስተያየቶች ይተዋሉ. በተመሳሳይ ጊዜ, ቀደምት ጽሁፎች በበለጠ ፍጥነት ይነበባሉ - ለምሳሌ, በ 2010, ግማሹ አስተያየቶች በመጀመሪያዎቹ 6 ሰዓታት ውስጥ መጡ.

Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

አስተያየቶች መራዘማቸው አስገረመኝ፡ በአስተያየቱ ውስጥ ያሉት የገጸ-ባህሪያት አማካኝ ቁጥር በሀብር እድሜ ልክ በእጥፍ ሊጨምር ችሏል!

Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

ከአስተያየቶች የበለጠ ቀላል ግብረመልስ ድምጾች ናቸው። እንደሌሎች ሃብቶች በተለየ ሀበሬ ላይ ፕላስ ብቻ ሳይሆን ማይነስንም ማስቀመጥ ይችላሉ። ነገር ግን፣ አንባቢዎች የመጨረሻውን እድል ብዙ ጊዜ አይጠቀሙም፡ አሁን ያለው የጥላቻ ድርሻ ከጠቅላላው ድምጽ 15 በመቶው ነው። ብዙ ነበሩ ፣ ግን ከጊዜ በኋላ አንባቢዎች ደግ ሆነዋል።

Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

ጽሑፎቹ በጊዜ ሂደት ተለውጠዋል. ለምሳሌ፣ ቀውሶች ቢኖሩትም የተለመደው የጽሁፉ ርዝመት ከጣቢያው መጀመር ጀምሮ ያለማቋረጥ ማደጉን አያቆምም። በአሥር ዓመታት ውስጥ ጽሑፎች ወደ አሥር እጥፍ የሚጠጉ ሆነዋል!

Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

የጽሑፎቹ ዘይቤ (ለመጀመሪያው ግምት) እንዲሁ ተቀይሯል። ለምሳሌ ሃብር በኖረባቸው የመጀመሪያዎቹ ዓመታት የኮድ እና የቁጥሮች ድርሻ በጽሁፎች ውስጥ ጨምሯል፡-

Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

የገጹን አጠቃላይ እንቅስቃሴ ከተረዳሁ በኋላ፣ የተለያዩ ርዕሶች ታዋቂነት እንዴት እንደተለወጠ ለመለካት ወሰንኩ። ርዕሶችን ከጽሁፎች ውስጥ በራስ ሰር መምረጥ ይቻላል፣ ለጀማሪዎች ግን መንኮራኩሩን ማደስ አይችሉም፣ ነገር ግን በእያንዳንዱ መጣጥፍ ደራሲዎች የተለጠፈ ዝግጁ የሆኑ መለያዎችን ይጠቀሙ። በገበታው ላይ አራት የተለመዱ አዝማሚያዎችን ስልቻለሁ። የ"Google" ጭብጥ መጀመሪያ ላይ የበላይነት ነበረው (ምናልባትም በ SEO ምክንያት)፣ ነገር ግን ባለፉት አመታት ክብደት እየቀነሰ ነው። ጃቫ ስክሪፕት ተወዳጅ ርዕሰ ጉዳይ ነው እና ቀስ በቀስ ማደጉን ይቀጥላል, ነገር ግን የማሽን መማር በፍጥነት ተወዳጅነት ማግኘት የጀመረው በቅርብ ዓመታት ውስጥ ብቻ ነው. ሊኑክስ በበኩሉ በአስር አመታት ውስጥ እኩል ጠቃሚ ሆኖ ቆይቷል።

Habr እንዴት እንደተነተንኩት ክፍል 1፡ አዝማሚያዎች

እርግጥ ነው፣ ብዙ የአንባቢ እንቅስቃሴን የሚስቡ ርዕሰ ጉዳዮች ላይ ፍላጎት አደረብኝ። በእያንዳንዱ ርዕስ ውስጥ ያሉትን የእይታዎች፣ ድምጾች እና አስተያየቶች አማካኝ ቁጥር አስላለሁ። የሆነው እነሆ፡-

  • በብዛት የታዩ ርዕሶች፡ አርዱዪኖ፣ የድር ዲዛይን፣ የድር ልማት፣ መፍጨት፣ ማገናኛዎች፣ ሲኤስኤስ፣ ኤችቲኤምኤል፣ html5፣ nginx፣ አልጎሪዝም።
  • በጣም "የተወደዱ" ርዕሶች: vkontakte, ቀልድ, jquery, ኦፔራ, ሲ, ኤችቲኤምኤል, የድር ልማት, html5, css, የድር ንድፍ.
  • ብዙ ውይይት የተደረገባቸው ርዕሶች፡ ኦፔራ፣ ስካይፕ፣ ፍሪላንስ፣ vkontakte፣ ubuntu፣ work, nokia, nginx, arduino, firefox.

በነገራችን ላይ ርዕሰ ጉዳዮችን እያነጻጸርኩ ስለሆነ፣ በድግግሞሽ ደረጃ ልትሰጣቸው ትችላለህ (እና ውጤቱን ከ ጋር አወዳድር ተመሳሳይ ጽሑፍ ከ 2013).

  • ሀብር በኖረባቸው ዓመታት ሁሉ በጣም ታዋቂዎቹ መለያዎች (በመውረድ ቅደም ተከተል) ጉግል፣ አንድሮይድ፣ ጃቫስክሪፕት፣ ማይክሮሶፍት፣ ሊኑክስ፣ ፒኤችፒ፣ አፕል፣ ጃቫ፣ ፓይቶን፣ ፕሮግራሚንግ፣ ጀማሪዎች፣ ልማት፣ አይኦስ፣ ጅምር፣ ማህበራዊ አውታረ መረቦች ናቸው።
  • እ.ኤ.አ. በ 2017 በጣም ተወዳጅ የሆኑት ጃቫስክሪፕት ፣ ፓይቶን ፣ ጃቫ ፣ አንድሮይድ ፣ ልማት ፣ ሊኑክስ ፣ ሲ++ ፣ ፕሮግራሚንግ ፣ php ፣ c # ፣ ios ፣ ማሽን መማር ፣ የመረጃ ደህንነት ፣ ማይክሮሶፍት ፣ ምላሽ

እነዚህን ደረጃዎች በማነፃፀር አንድ ሰው ትኩረት መስጠት ይችላል ፣ ለምሳሌ ፣ ለፓይዘን ድል ጉዞ እና የ php መጥፋት ፣ ወይም ለጀማሪ ርእሶች “ፀሐይ መጥለቅ” እና የማሽን መማር መነሳት።

በሀበሬ ላይ ያሉ ሁሉም መለያዎች እንደዚህ ያለ ግልጽ ጭብጥ ቀለም የላቸውም። ለምሳሌ፣ አንድ ጊዜ ብቻ የተገናኙ፣ ግን ለእኔ አስቂኝ የሚመስሉ ደርዘን የሚሆኑ መለያዎች እዚህ አሉ። ስለዚህ፡ "ሀሳብ የዕድገት አንቀሳቃሽ ኃይል ነው"፣ "ከፍሎፒ ዲስክ ምስል ቡት"፣ "አዮዋ ግዛት"፣ "ድራማ"፣ "ሱፐርአሌሽ"፣ "የእንፋሎት ሞተር"፣ "ቅዳሜ የሚደረጉ ነገሮች"፣ "እኔ አለኝ። በስጋ ማጠፊያ ውስጥ ያለ ቀበሮ፣ "እንደ ሁልጊዜም ሆነ"፣ "አስቂኝ መለያዎችን መፍጠር አልቻልንም።" የእንደዚህ አይነት መጣጥፎችን ርዕሰ ጉዳይ ለመወሰን መለያዎች በቂ አይደሉም - በአንቀጾቹ ጽሑፎች ላይ ጭብጥ ሞዴሊንግ ማካሄድ አለብዎት።

ስለ ጽሑፎቹ ይዘት የበለጠ ዝርዝር ትንታኔ በሚቀጥለው ጽሑፍ ውስጥ ይሆናል። በመጀመሪያ፣ በይዘቱ ላይ በመመስረት ለአንድ መጣጥፍ የገጽ እይታዎችን ብዛት የሚተነብይ ሞዴል እገነባለሁ። በሁለተኛ ደረጃ፣ የነርቭ ኔትወርክን እንደ ሀብር ደራሲዎች በተመሳሳይ መልኩ ጽሑፎችን እንዲያመነጭ ማስተማር እፈልጋለሁ። ስለዚህ ሰብስክራይብ ያድርጉ 🙂

PS እና ድምጹ እዚህ አለ። የውሂብ ስብስብ.

ምንጭ: hab.com

አስተያየት ያክሉ