Protocol de excludere a robotului

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Protocolul de excludere a robotului (în engleză Robots Exclusion Standard ) indică, în jargonul internetului și mai general al web , regulile indicate de administratorii unui site web crawlerelor care îl vizitează, cerând aplicarea restricțiilor de analiză pe pagini a site-ului. Acestea sunt conținute în fișierul robots.txt , creat în iunie 1994 cu consimțământul membrilor listei de distribuție a roboților (robot-request @ nexor.co.uk). În acest moment nu există un standard real pentru protocolul roboților.

Rolul crawlerelor

Crawlerele web sunt programe automate programate pentru a efectua căutări și indexări periodice. În prima fază a analizei unui site web, aceștia ar trebui să verifice existența fișierului robots.txt și să aplice orice restricții solicitate de webmasterul site-ului. Cu toate acestea, nu toți roboții respectă solicitările conținute în fișierul robot.txt.

Standard

Când proprietarul unui site dorește să instruiască roboții web, el plasează un fișier text numit robots.txt la rădăcina ierarhiei site-ului web (de exemplu, Https://www.example.com/robots.txt). Acest fișier text conține instrucțiuni într-un format specific (a se vedea exemplele de mai jos). Roboții care aleg să urmeze instrucțiunile încearcă să recupereze acest fișier și să citească instrucțiunile înainte de a prelua orice alte fișiere de pe site. Dacă acest fișier nu există, roboții web presupun că proprietarul site-ului nu dorește să impună restricții cu privire la accesarea cu crawlere a întregului site.

Un fișier robots.txt de pe un site web va funcționa ca o cerere prin care roboții specificați ignoră fișierele sau directoarele specificate atunci când accesează cu crawlere un site. Acest lucru ar putea apărea, de exemplu, dintr-o preferință pentru confidențialitate din rezultatele motoarelor de căutare sau din convingerea că conținutul directoarelor selectate ar putea fi înșelător sau irelevant pentru clasificarea site-ului în ansamblu sau din dorința unei aplicații care funcționează doar pe anumite date. Link-urile către paginile listate în robots.txt pot apărea în continuare în rezultatele căutării dacă sunt conectate la o pagină accesată cu crawlere [1] .

Un fișier robots.txt acoperă o sursă. Pentru site-urile web cu mai multe subdomenii, fiecare subdomeniu trebuie să aibă propriul său fișier robots.txt. Dacă example.com ar avea un fișier robots.txt, dar a.example.com nu, regulile care s-ar aplica pentru example.com nu s-ar aplica la a.example.com. De asemenea, fiecare protocol și port are nevoie de propriul fișier robots.txt; http://example.com/robots.txt nu se aplică paginilor din http://example.com:8080/ sau https://example.com/.

Unele dintre principalele motoare de căutare care respectă acest standard includ Ask [2] , AOL [3] , Baidu [4] , DuckDuckGo [5] , Google [6] , Yahoo! [7] și Yandex [8] . Bing nu este pe deplin compatibil cu standardul, deoarece nu poate moșteni setările de la caracterul comod ( * )[9] .

Grupul de voluntari Archive Team ignoră în mod explicit fișierul robots.txt în cea mai mare parte, considerându-l un standard învechit care împiedică eforturile de arhivare web. Potrivit liderului de proiect Jason Scott, „necontrolat și lăsat singur, fișierul robots.txt nu garantează oglindirea sau referințarea pentru elementele care pot avea o utilizare generală și un sens în afara contextului site-ului web” [10] .

Timp de câțiva ani, Internet Archive nu a accesat cu crawlere site-uri cu robots.txt, dar în aprilie 2017 a anunțat că nu va mai respecta directivele din fișierele robots.txt [11] . "De-a lungul timpului am observat că fișierele robots.txt destinate crawlerelor motoarelor de căutare nu servesc neapărat scopurilor noastre de arhivare." Acest lucru a fost ca răspuns la domeniile întregi care au fost etichetate cu robots.txt când conținutul a devenit învechit[12] .

Siguranță

În ciuda utilizării termenilor „permite” și „anulare”, protocolul este pur consultativ și se bazează pe conformitatea robotului web [13] . Este puțin probabil ca roboții web răuvoitori să respecte fișierul robots.txt; unii pot folosi chiar fișierul robots.txt ca ghid pentru găsirea linkurilor interzise și accesarea lor directă. Deși uneori se pretinde că acesta este un risc de securitate [14] , acest tip de securitate prin obscuritate este descurajat de organismele de standardizare. Institutul Național de Standarde și Tehnologie (NIST) din Statele Unite recomandă în mod specific împotriva acestei practici: „Securitatea sistemului nu ar trebui să depindă de secretul implementării sau al componentelor sale” [15] . În contextul fișierelor robots.txt, securitatea prin obscuritate nu este recomandată ca tehnică de securitate [16] .

Alternative

Mulți roboți transmit, de asemenea, un agent de utilizator special către serverul web în timpul recuperării conținutului [17] . Un administrator web ar putea, de asemenea, să configureze serverul pentru a returna automat o eroare (sau a difuza conținut alternativ) atunci când detectează o conexiune folosind unul dintre roboți [18] [19] .

Unele site-uri, cum ar fi Google, găzduiesc un fișier humans.txt care afișează informații destinate citirii umane [20] . Unele site-uri precum GitHub redirecționează human.txt către o pagină de informații [21] .

Anterior, Google avea un fișier de glumă găzduit pentru /killer-robots.txt instruia pe Terminator să nu ucidă fondatorii companiei Larry Page și Sergey Brin [22] [23] .

Format fișier Robots.txt

Fișierul folosește un protocol foarte simplu care vă permite să definiți robotul la care să aplicați regula și paginile și directoarele care nu trebuie indexate.

Fiecare linie a fișierului conține o înregistrare. Fiecare înregistrare are următoarea sintaxă:

 <câmp>: <valoare>

Câmpurile disponibile sunt:

Agent utilizator
valoarea acestui câmp conține numele robotului care trebuie să respecte restricțiile. Cu caracterul * regula se aplică oricărui robot.
Nu permiteți
valoarea acestui câmp conține paginile site-ului care trebuie excluse din roboți în timpul indexării. Puteți indica o anumită adresă URL sau o serie de adrese URL care aparțin unui model.

Pentru fiecare utilizator-agent este posibil să specificați una sau mai multe restricții prin Disallow .

Exemple

Iată câteva exemple clasice [6] de utilizare a fișierului robots.txt.

Pentru a permite accesul la întregul site web, nu indicați nimic în directiva Disallow. Unele crawlerele acceptă, de asemenea, directiva Permite.

 Agent utilizator: *
Nu permiteți:

Pentru a bloca un întreg site, utilizați o bară.

 Agent utilizator: *
Nu permiteți: /

Pentru a bloca un director și conținutul acestuia, urmați numele directorului cu o bară directă.

 Agent utilizator: *
Disallow: / private_directory /

Pentru a bloca o pagină, indicați acea pagină.

 Agent utilizator: *
Nu permiteți: /private_file.html

Pentru a raporta fișierul sitemap al site-ului.

 Sitemap: http://arquivo.pt/wayback/20120125215620/http://www.example.com/sitemap.xml

Există, de asemenea, directiva Crawl-Delay, care vă permite să limitați viteza de acces la server de către crawlerele care îl suportă, indicând timpul minim de așteptare, în secunde, între două solicitări consecutive.

Dacă, în locul asteriscului, introduceți un șir de utilizator-agent în directiva User-Agent, regulile vor fi limitate la crawlerul identificat de acel user-agent.

Extensie standard

Au fost propuși doi parametri noi pentru Standardul extins pentru excluderea robotului : rata solicitării și timpul vizitei :

 Agent utilizator: *
Disallow: / private_directory / # Block directory / private_directory /
Rată de solicitare: 1/5 # Vizitați cel mult o pagină la fiecare 5 secunde
Timp de vizitare: 0600-0845 # Vizita numai între 6:00 AM și 8:45 AM UT (GMT)

Extensii nestandardizate

Directiva privind întârzierea scanării

Valoarea de întârziere a accesării cu crawlere este acceptată de unele crawlerele pentru a-și limita vizitele la gazdă. Deoarece această valoare nu face parte din standard, interpretarea sa depinde de crawlerul care o citește. Este utilizat atunci când explozia multiplă de vizite de la roboți încetinește gazda. Yandex interpretează valoarea ca numărul de secunde de așteptat între vizitele ulterioare [8] . Bing definește întârzierea cu accesarea cu crawlere ca fiind dimensiunea unei ferestre de timp (de la 1 la 30 de secunde) în timpul căreia BingBot va accesa o singură dată un site web. Google oferă o interfață în consola sa de căutare pentru webmasteri pentru a monitoriza vizitele ulterioare la GoogleBot [24] .

 User-agent: bingbot
Permite: /
Crawl-delay: 10

Permiteți directiva

Unele dintre crawlerele majore acceptă o directivă Allow , care poate contracara o directivă ulterioară Disallow [25] [26] . Acest lucru este util atunci când le spuneți roboților să evite un întreg director, dar totuși doriți să fie accesate cu crawlere și indexate unele documente HTML din acel director. În timp ce pentru implementarea standard câștigă întotdeauna primul model robots.txt, implementarea Google diferă prin faptul că permite modelelor cu caractere egale sau mai mari din calea directivei să câștige pe un model Disallow potrivit [27] . Bing utilizează Allow sau Disallow directivei, care este mai specific, în funcție de lungime, cum ar fi Google[9] .

Pentru a fi compatibil cu toți roboții, dacă doriți să permiteți fișiere individuale într-un director altfel interzis, trebuie să introduceți mai întâi Permite directive, urmate de Disallow, de exemplu:

 Permiteți: /directory1/myfile.html
Nu permiteți: / directorul1 /

Acest exemplu va dezactiva totul în / directorul1 / cu excepția / directoriu1 / fișierul meu.html, deoarece acesta din urmă se va potrivi mai întâi. Comanda este importantă numai pentru roboții care respectă standardul; în cazul roboților Google sau Bing, comanda nu este importantă.

Sitemap

Unele crawlerele acceptă o directivă Sitemap , care permite mai multe sitemap-uri în același robots.txt al formularului [28] : Sitemap: full-url

 Sitemap: http://www.example.com/sitemap.xml

Gazdă

Unele crawlerele (Yandex) acceptă o directivă Host , care permite site-urilor web cu mai multe oglinzi să-și specifice domeniul preferat [29] :

 Gazdă: hosting.example.com

Acest lucru nu este acceptat de toate crawlerele.

Potrivire universală „*”

Standardul de excludere a robotului nu menționează caracterul „*” din declarație [30] Disallow:

Metaetichete și anteturi

În plus față de fișierele robots.txt la nivel de rădăcină, directivele de excludere a robotului pot fi aplicate la un nivel mai granular prin utilizarea metaetichetelor Robots și a anteturilor HTTP X-Robots-Tag. Metaeticheta roboților nu poate fi utilizată pentru fișiere non-HTML, cum ar fi imagini, fișiere text sau documente PDF. Pe de altă parte, X-Robots-Tag poate fi adăugat la fișiere non-HTML folosind file.htaccess și httpd.conf [31] .

O metaetichetă „noindex”
 <meta name = "robots" content = "noindex" />
Un antet de răspuns HTTP „noindex”
 X-Robots-Tag: noindex

X-Robots-Tag este eficient numai după ce pagina a fost solicitată și serverul a răspuns, iar metaeticheta roboților este eficientă numai după ce pagina a fost încărcată, în timp ce robots.txt este eficient înainte ca pagina să fie solicitată. Prin urmare, dacă o pagină este exclusă dintr-un fișier robots.txt, toate metaetichetele roboților sau anteturile X-Robots-Tag sunt efectiv ignorate, deoarece robotul nu le va vedea în primul rând [31] .

Utilizare

Odată ce fișierul robots.txt a fost creat, acesta trebuie plasat în directorul rădăcină al domeniului și să aibă numele exact „robots.txt”. Dacă este stocat într-un alt director, roboții nu îl vor găsi, deoarece implicit caută în directorul rădăcină al domeniului.

Dacă nu aveți acces la directorul rădăcină al unui domeniu, puteți restricționa accesul folosind eticheta META Robots.

Notă

  1. ^ Adrese URL neconectate în rezultatele căutării , pe youtube.com , YouTube, 5 octombrie 2009. Accesat la 29 decembrie 2013 ( arhivat la 6 ianuarie 2014) .
  2. ^ Despre Ask.com: webmasteri , la About.ask.com . Adus la 16 februarie 2013 .
  3. ^ Despre AOL Search , la Search.aol.com . Adus la 16 februarie 2013 .
  4. ^ Baiduspider , pe Baidu.com . Adus la 16 februarie 2013 .
  5. ^ DuckDuckGo Bot , pe DuckDuckGo.com . Adus la 25 aprilie 2017 .
  6. ^ a b Webmasteri: Specificații Robots.txt , în Google Developers . Adus la 16 februarie 2013 ( arhivat la 15 ianuarie 2013) .
  7. ^ Trimiterea site-ului dvs. către Yahoo! Căutați , pe help.yahoo.com . Adus la 16 februarie 2013 ( arhivat la 21 ianuarie 2013) .
  8. ^ a b Folosind robots.txt , la Help.yandex.com . Adus la 16 februarie 2013 ( arhivat la 25 ianuarie 2013) .
  9. ^ a b Protocolul de excludere a roboților: unirea împreună pentru a furniza o documentație mai bună , la Blogs.bing.com . Adus la 16 februarie 2013 ( arhivat la 18 august 2014) .
  10. ^ Jason Scott , Robots.txt este o notă de sinucidere ( TXT ), la archiveteam.org , Echipa de arhivă. Adus la 18 februarie 2017 ( arhivat la 18 februarie 2017) .
  11. ^ (RO) Robots.txt destinat motoarelor de căutare nu funcționează bine pentru arhivele web | Bloguri Internet Archive , la blog.archive.org . Adus la 1 decembrie 2018 (arhivat din original la 4 decembrie 2018) .
  12. ^ Brad Jones, The Internet Archive Will Ignore Robots.txt Files to Maintain Accuracy , în Digital Trends , 24 aprilie 2017. Accesat la 8 mai 2017 ( arhivat la 16 mai 2017) .
  13. ^ Blocați adresele URL cu robots.txt: aflați despre fișierele robots.txt , la support.google.com . Adus la 10 august 2015 ( arhivat la 14 august 2015) .
  14. ^ Robots.txt le spune hackerilor locurile pe care nu doriți să le caute , în The Register . Adus la 12 august 2015 ( arhivat la 21 august 2015) .
  15. ^ Ghid pentru securitatea serverului general ( PDF ), la csrc.nist.gov , Institutul Național de Standarde și Tehnologie, iulie 2008. Accesat la 12 august 2015 ( arhivat la 8 octombrie 2011) .
  16. ^ Sverre H. Huseby, Innocent Code: A Security Wake-Up Call for Web Programmers , John Wiley & Sons, 2004, pp. 91–92, ISBN 9780470857472 . Adus la 12 august 2015 ( arhivat la 1 aprilie 2016) .
  17. ^ Lista utilizatorilor-agenți (păianjeni, roboți, browser) , pe user-agents.org . Adus pe 29 decembrie 2013 ( arhivat pe 7 ianuarie 2014) .
  18. ^ Control acces - Apache HTTP Server , la httpd.apache.org . Adus pe 29 decembrie 2013 ( arhivat pe 29 decembrie 2013) .
  19. ^ Refuzați șirurile pentru regulile de filtrare: site-ul oficial Microsoft IIS , pe iis.net . Adus la 29 decembrie 2013 ( arhivat la 1 ianuarie 2014) .
  20. ^ Google humans.txt ( TXT ), pe google.com . Accesat la 3 octombrie 2019 .
  21. ^ Github humans.txt ( TXT ), pe github.com . Accesat la 3 octombrie 2019 .
  22. ^ (EN) Lily Hay Newman, Este acest ou de Paște Google sau Skynet Este o dovadă care complotează de fapt dominația lumii? , în Slate Magazine , 3 iulie 2014. Adus 3 octombrie 2019 .
  23. ^ /killer-robots.txt ( TXT ), pe google.com , 10 ianuarie 2018. Accesat 25 mai 2018 ( arhivat 10 ianuarie 2018) .
  24. ^ (RO) Modificați rata de accesare cu crawlere Googlebot - Ajutor pentru webmasteri pe support.google.com. Adus la 22 octombrie 2018 ( arhivat la 18 noiembrie 2018) .
  25. ^ Centrul de ajutor pentru webmasteri - Cum blochez Googlebot? , pe google.com . Adus la 20 noiembrie 2007 ( arhivat la 1 august 2010) .
  26. ^ Cum pot preveni accesarea cu crawlere a site-ului meu sau a anumitor subdirectoare? - Ajutor Yahoo Search , la help.yahoo.com . Adus la 20 noiembrie 2007 ( arhivat la 13 octombrie 2007) .
  27. ^ Interpretarea ascunsă a Google de Robots.txt , la blog.semetrical.com . Adus la 15 noiembrie 2010 ( arhivat la 20 noiembrie 2010) .
  28. ^ Yahoo! Căutare blog - webmasterii pot acum să descopere automat cu Sitemaps , pe ysearchblog.com . Adus la 23 martie 2009 (arhivat din original la 5 martie 2009) .
  29. ^ Yandex - Utilizarea robots.txt , la help.yandex.com . Adus la 13 mai 2013 ( arhivat la 9 mai 2013) .
  30. ^ Specificații Robots.txt , pe Google Developers . Adus la 15 februarie 2020 .
  31. ^ a b Meta-etichetă Robots și specificații antet HTTP X-Robots-Tag - Webmasteri - Google Developers , la developer.google.com . Adus la 17 august 2013 ( arhivat la 8 august 2013) .

Elemente conexe

linkuri externe