Estadístiques d'accessos¶
Vegeu també: EstadistiquesDeContingutICreixement, EstadistiquesDUsuaris i EstadistiquesInternesLliuradors
Consulta de les estadístiques d'accessos¶
- Per als accessos: http://ddd.uab.cat/accessos/
- Google analytics: http://www.google.com/analytics/es-ES/ (Gmail obert per això: estadistiquesddd@gmail.com). Les dades s'inicien a partir de maig de 2010.
- Tipus Tasmània: http://ddd.uab.cat/usage.py
Descripció¶
Les estadístiques d'accessos les fem a partir dels logs d'Apache. Fins l'any 2010 les havíem estat fent amb aquestes característiques:
- Sense eliminar robots, ni personal de manteniment del DDD.
- Eliminant només els fitxers .png i .gif, .css, .info
Se n'estava fent un de general (anomenat total) i d'específic per a cadascuna de les publicacions que consten a la pàgina EstadistiquesDUsDePublicacionsUAB. Aquest mètode l'hem declarat obsolet, i aquesta pàgina ja no té sentit, perquè fem la detecció de si és publicació UAB pel 980 $b. Les antigues estadístiques anomenades total les hem conservades però amb el nom total-sense-filtrar.
A partir de l'any 2010 començarem a fer-ne de més afinades, incorporant els criteris del CBUC/CESCA, tal com explica de manera resumida en cadascun dels seus dipòsits (ex: http://www.recercat.net/recercatjsp/estadistiques.jsp, http://raco.cat/index.php/index/raco/estadistiques):
- Es defineix una consulta a un article com un accés al seu resum, o bé com la descàrrega del text complet quan aquesta no és a través de la seva pròpia pàgina de resum.
- Els accessos automàtics de robots, tant aquells que consulten el fitxer robots.txt com d'altres detectats per nosaltres, no es comptabilitzen com a consultes. També s'exclouen els accessos fraudulents (molts accessos des d'una mateixa IP) i els accessos realitzats des d'adreces del CESCA i del CBUC.
- Per determinar les consultes per país s'usen les llibreries !GeoIP.
Una explicació més detallada està a la presentació que el Ricard de la Vega va fer a: http://hdl.handle.net/2072/67602. No podem aplicar els mateixos scripts que utilitzen ells perquè són específics per a cadascuna de les aplicacions que gestionen. Concretament, ens va passar els de OJS (RACO). De tota manera, els criteris sí que es poden aplicar. El CESCA fa aquestes definicions:
L'adaptació d'aquests criteris al cas del DDD els fem així:
- Només comptem els accessos a aquelles adreces publicades a la 856 $u dels registres. Així, si publiquem documents HTML, que cadascun d'ells pot tenir dotzenes de fitxers (imatges, CSS, etc.), només comptem l'accés al document principal. D'aquesta manera ignorem automàticament també tots els accesoss a les miniatures i qualsevol navegació no oficial pel DDD.
- Només comptem l'accés al document que produeix un 200 OK (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1), és a dir, el primer hit al document, i per tant ignorem tots els 206 Partial content (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.7) que generen les visualitzacions pàgina a pàgina dels documents PDFs en el que el visualitzador de PDFs està incrustat en el navegador.
- Entenem que podem ignorar l'eliminació del doble clic, el podem ignorar perquè seria l'equivalent al status 304 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5). Li vaig consultar al Ricard de la Vega del Cesca i va estar d'acord amb aquesta decisió.
- Robot és tot aquell ordinador que, en el període que comptem:
- consulta al menys un cop el fitxer /robots.txt o a /oai2d.
- ha editat almenys algun registre bibliogràfic.
- és específicament sensor.uab.es, o els dominis google o msn.com (perquè tenen tants centenars de robots que no tots consulten el fitxer robots.txt).
- el nom del programa client conté indicis que és automatitzat: Validator, Baidu (el Google xinès), !HttpComponents, Python-urllib, URI_Checker. libwww-perl, linkedin, wordpress o wget.
- al final d'aquest document trobareu unaa implementació d'aquesta detecció.
- Periòdicament també fem una anàlisi del comportament dels primers 10 o 20 ordinadors que més ens han consultat. Sovint resulten en comportaments que no són propis d'humans, com baixar-se centenars de vegades un sol fitxer, o estar més de 24 o 48 hores seguides baixant-se documents sense descans, tot això sovint concentrat en un sol període de pocs dies, o similars. Si creiem detectar un comportament obvi de robot o màquina colonitzada per algun programa maliciós, el posem a la llista negra manual. A gener del 2011 n'hi ha 26.
- Comptem en base als registres bibliogràfics, per tant, som conscients que un registre amb molts fitxers tindrà més hits que un altre amb un sol fitxer.
- En el nostre cas, això vol dir que una petició per al fitxer http://ddd.uab.cat/pub/guiest/biociencies/biociencies_a2010-11.pdf la fem equivalent a demanar el registre http://ddd.uab.cat/record/7422. És a dir, simplifiquem totes les referències dels fitxers sol·licitats en els fitxers de log a referències als seus registres.
- La UPF té un text explicatiu al seu apartat d'estadístiques: "Descàrregues i visualitzacions - Període fix
Número de descàrregues i visualitzacions en el període. En els documents amb més d'un fitxer, el número de descàrregues és dividit pel número de fitxers associats al document." De moment nosaltres hem decidit no aplicar cap correctiu d'aquest tipus.
- Agrupem les publicacions periòdiques, pel 980 $b (revistes de la UAB, antigues d'art i cultura, premsa política clandestina, fons històric de veterinària, història de l'art, etc). En el cas que hi hagi més d'un $b només agafarà el primer.
- També fem una estadística per a col·leccions de primer nivell, sobretot per satisfer la curiositat de Els x documents més consultats de la col·lecció y. Per exemple: http://ddd.uab.cat/accessos/2010/artpub/ (Articles publicats), http://ddd.uab.cat/accessos/2010/docrec/ (Documents de recerca), http://ddd.uab.cat/accessos/2010/fonper/ (Fons personals), etc.
A Gener del 2011 hem refet totes les estadístiques des de 2006 fins a 2010 amb aquests nous criteris, conservant les antigues amb els noms -sense filtrar.
Annex: detecció de robots en awk¶
A maig del 2011 la implementació concreta d'aquesta detecció és la següent:
awk '
BEGIN {
blacklist["109.65.20.125.bezeqint.net"]++ # 2010
blacklist["126.Red-79-145-12.dynamicIP.rima-tde.net"]++
blacklist["150-1-16-190.fibertel.com.ar"]++
blacklist["163.pool62-37-171.dynamic.orange.es"]++ # 2010
blacklist["18971134118.user.veloxzone.com.br"]++ # 2010
blacklist["18971196156.user.veloxzone.com.br"]++
blacklist["194.224.54.10.wke.es"]++ # 2010
blacklist["194.224.54.111.wke.es"]++ # 2010
blacklist["200.14.53.71.mes.edu.cu"]++ # 2010
blacklist["208.Red-83-43-230.dynamicIP.rima-tde.net"]++
blacklist["213.186.119.229.utel.net.ua"]++ # 2010
blacklist["213.186.120.196.utel.net.ua"]++ # 2010
blacklist["239.Red-193-152-183.dynamicIP.rima-tde.net"]++
blacklist["244.pool62-37-159.dynamic.orange.es"]++ # 2010
blacklist["4.241.220.87.dynamic.jazztel.es"]++
blacklist["92.be.1343.static.theplanet.com"]++
blacklist["A-BI-153.sarenet.es"]++
blacklist["adsl190-28-147-222.epm.net.co"]++ # 2010
blacklist["cache.ciges.inf.cu"]++
blacklist["dsl-187-143-7-221-dyn.prod-infinitum.com.mx"]++ # 2010
blacklist["fcm.uncu.edu.ar"]++ # 2010
blacklist["matrixdata.inspirit.net"]++ # 2010
blacklist["net-104-66.jasatel.net.id"]++ # 2010
blacklist["pdflink.com"]++
blacklist["pppoe-188-187-64-183.volgograd.ertelecom.ru"]++
blacklist["sensor.uab.es"]++
}
$7 ~ /^/oai2d/ { next }
$1 in robots { next }
$1 in blacklist { robots[$1]++; print; next }
$7 == "/robots.txt" { robots[$1]++; print; next }
$7 ~ /^/marcedit/ { robots[$1]++; print; next }
$1 ~ /google/ { robots[$1]++; print; next }
$1 ~ /msn.com/ { robots[$1]++; print; next }
$1 ~ /trendmicro/ { robots[$1]++; print; next }
$1 ~ /yahoo.com/ { robots[$1]++; print; next } # 2011
$(NF-1) == ""-"" && $NF == ""-"" { robots[$1]++; print; next }
$(NF-1) == ""FDM" { robots[$1]++; print; next }
$(NF-1) == "Sleuth" { robots[$1]++; print; next }
$(NF-1) == "dummy" { robots[$1]++; print; next }
$(NF-1) == "http_load" { robots[$1]++; print; next } # 2011
$(NF-1) ~ "Slurp" { robots[$1]++; print; next }
$(NF-1) ~ /bot/[0-9]/ { robots[$1]++; print; next }
$(NF-1) ~ /WebCopier/ { robots[$1]++; print; next }
$(NF-1) ~ /LinkScan/ { robots[$1]++; print; next }
$(NF-1) ~ /facebookexternalhit/ { robots[$1]++; print; next }
$(NF-2) == ""pirst;" { robots[$1]++; print; next }
$NF ~ /robot/ { robots[$1]++; print; next }
$NF ~ /spider/ { robots[$1]++; print; next }
$NF ~ /Baidu/ { robots[$1]++; print; next }
$NF ~ /HttpComponents/ { robots[$1]++; print; next }
$NF ~ /LWP/ { robots[$1]++; print; next }
$NF ~ /LinkParser/ { robots[$1]++; print; next }
$NF ~ /Python-urllib/ { robots[$1]++; print; next }
$NF ~ /URI_Checker/ { robots[$1]++; print; next }
$NF ~ /Validator/ { robots[$1]++; print; next }
$NF ~ /libwww-perl/ { robots[$1]++; print; next }
$NF ~ /linkdex/ { robots[$1]++; print; next }
$NF ~ /linkedin/ { robots[$1]++; print; next }
$NF ~ /oBot/ { robots[$1]++; print; next }
$NF ~ /robot/ { robots[$1]++; print; next }
$NF ~ /spider/ { robots[$1]++; print; next }
$NF ~ /[Ww]ord[Pp]ress/ { robots[$1]++; print; next }
$(NF-1) ~ /[Ww]ord[Pp]ress/ { robots[$1]++; print; next }
$NF ~ /Wget/ { robots[$1]++; print; next }
$(NF-3) ~ /Wget/ { robots[$1]++; print; next }
' $logfiles >$robotsfile
Actualitzat per Ferran Jorba fa quasi 12 anys · 1 revisions