Habrastatistics: explorans maxime minimeque visitavit sectiones situs
Salve, Habr.
В prior pars Negotiatio Habr secundum ambitum principalem - numerus articulorum, opiniones et aestimationes resolvitur. Eventus tamen sectionum favoris situs inexcusabilis mansit. Is interesting factus est fusius intueri et invenire cantus populares et invidiosissimos. Denique effectum geektimorum accuratius intuebor, cum nova delectu optimorum articulorum e novis ordo.
Nam ea, quae intersunt, quae facta sunt, continuatio sub incisa est.
Iterum me moneam te statisticae et ratings officiales non esse, nullum interiorem informationem habeo. Illud etiam non praestatur me alicubi errasse aut aliquid desiderari. Sed tamen iucundam esse puto. Primum a codice incipiemus, qui hoc non quaero, sectiones primas transilire possunt.
Notitia collectio
In prima versione parser, solum numerus sententiarum, commentorum et aestimationes articuli habendae sunt. Hoc iam bonum est, sed non permittit ut plures interrogationes complectatur. Tempus est sectiones thematicas situs resolvere, hoc tibi permittit satis interesting investigationes facere, e.g., vide quomodo favoris sectionis "C++" per plures annos mutata est.
Articulus parser emendatus est, nunc cantae ad quas articulus pertinet, tum agnomen auctoris et aestimationem eius refert (multa interesting res hic quoque fieri potest, sed quae postea futura sunt). Notitia servata est in fasciculo csv quod simile hoc spectat:
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
...
Indicem principalium canti thematicarum situs recipiemus.
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)
Munus interretialis et chorda in genere inter duas tags filo desumo, ego illis usus sum ante. Cantae thematicae cum "*" signatae sunt, ut facile illustrari possint, et etiam insculpere lineas correspondentes ut sectiones aliorum categoriae capias.
Output of the get_hubs function is satis infigo indicem, quod servamus ut dictionarium. Praecipue catalogum totum exhibeo ut eius volumen aestimare possitis.
Ceterae cantae eodem modo conservatae sunt. Nunc facile est scribere functionem quae exitum reddat utrum articulum geektimes an centrum profile pertineat.
Matplotlib numerum articulorum editorum exhibemus utentes:
articulos "geektimes" et "geektimes" tantum in charta distinxi, quia Articulus ad utramque partem simul pertinere potest (exempli gratia "DIY" + "microcontrollers" + "C++"). Denominationem "profile" ad exaggerandam articulos profile in situ posui, quamquam fortasse vocabulum Anglicum pro profile hoc omnino recte non est.
In priore parte quaesivimus de effectibus "geektimes" consociata cum mutatione regulae solutionis articulorum pro geektime incipiente hac aestate. Geektimes articulos separatim ostendamus;
Effectus est interesting. Proxima ratio sententiarum geektimorum articulorum ad summam alicubi est circa 1:5. Sed cum numerus sententiarum notabiliter fluctuabat, inspectio articulorum "convivii" in eodem fere gradu manebat.
Etiam animadvertere potes numerum sententiarum articulorum in sectione "geektime" adhuc incidisse mutatis regulis, sed "per oculum", nullo plusquam 5% totali valores.
Est interesting intueri mediocris numerus sententiarum per articulum:
Articuli enim "convivii" sunt circiter 40% supra mediocris. Hoc verisimile non est mirum. Defectio ineunte Aprili incertus est mihi, fortasse id quod factum est, vel aliquo errore parsing, vel fortasse unus ex auctoribus geektimis ferias agit;).
Obiter graphus duo cacumina notabiliora ostendit in numero sententiarum articuli - Novus Annus et dies festus Maii.
Hubs
Ad analysim canti promissam transeamus. Sit vertice XX canti enumerare per numerum sententiarum:
Mire, popularis centrum in terminis sententiarum erat "Informatio Securitatis", summum 5 duces etiam "Programmatum" et "Scientiam Popularem" comprehenderunt.
Antitop occupat Gtk et Cocos.
Secretum Dicam, canti vertice cerni hicquamvis numerus sententiarum ibi non exhibeatur.
rating
Et tandem promissum censum. Usura analysi centrum data, maxime populares articulos ostendere possumus pro canti populari hoc anno MMXIX.
Ac denique, ne quis offendatur, censum minimi hub "gtk" visitavit dabo. Intra annum editum est одна Articulus, qui etiam "automatice" primam aciem census obtinet.