Robots.txt-elemző

robots.txt beillesztése, és olvasása úgy, ahogy a feltérképező teszi, az RFC 9309 szerint (a Robots Exclusion Protocol, 2022-ben szabványosítva): user-agent csoportok, Allow/Disallow szabályok, térképfájlok és ismeretlen direktívák, mindez áttekinthetően — plusz ellenőrzés a klasszikus hibákra (üres disallow-sorok, ismeretlen direktívák, túl nagy fájlok). Az illesztő ezután megválaszolja a valódi kérdést: egy user agent és egy útvonal megadása után a döntő szabály az engedélyezési vagy tiltási ítélettel együtt jelenik meg — leghosszabb egyezés, helyettesítő karakter *, záró horgony $ és csoportösszevonás, pontosan úgy, ahogy a szabvány előírja. Minden a böngészőben fut.
Még nincs elemzés. A fenti robots.txt beillesztése és az Fájl elemzése gomb, vagy egy minta betöltése szükséges.
Az illesztő a fenti dobozban lévő szövegen dolgozik (nincs szükség előzetes elemzésre). A user agentet az RFC 9309 szerint illeszti: a fájlban lévő User-agent értéknek kis- és nagybetűtől független részsztringként kell szerepelnie a beírt szövegben — így a ExampleBot/1.0 beírása egy ExampleBot névvel deklarált csoportot illeszt. Teljes URL is elfogadott útvonalként.
User agent (egy valódi UA-sztring is működik) Útvonal vagy teljes URL
Még nincs ítélet. Az Engedély tesztelése gomb megnyomásával kapható meg.
Hogyan kérdezhető le a fájl:megnyitáshttps://your-domain.example/robots.txta böngészőben, kijelölés, másolás és beillesztés itt — vagycurl -s https://your-domain.example/robots.txtterminálban. Ez az oldal soha nem kérdez le semmit: csak azt olvassa, amit beillesztenek. A fájlt szállító válaszfejlécek megvizsgálásához ezeket aHTTP-fejléc-elemző.
Önteszt
Újrafuttatja az elemzőt és az illesztőt az RFC 9309 referencia vektorai ellen: leghosszabb egyezés elsőbbsége (beleértve az engedély-felülírja-a-tiltást döntetlent és a mély útvonal esetét), csoportösszevonás, a*csoport visszaesési, az útvonalak és user agentek kis- és nagybetű-érzékenysége, helyettesítő karakterek, a$horgony, az implicit engedély/robots.txt, százalékos kódolás normalizálása, térképfájl-kinyerés és a negatív útvonalak. Semmi nincs elküldve sehova.
Mi az a robots.txt?
Egy mondatban: a robots.txt egy egyszerű szöveges fájl a webhely gyökerében, amely megmondja a jól viselkedő feltérképezőknek, mely útvonalakat letölthetik — önkéntes konvenció, amelyet 2022-ben az RFC 9309 szabványosított, és amelyet minden jelentős feltérképező betart.
A fájl alakja

A fájl rekordok sorozata. Egy csoport egy vagy több User-agent sorral kezdődik, amelyet ezekre a feltérképezőkre vonatkozó Allow és Disallow szabályok követnek. Új User-agent sor szabályok után új csoportot kezd; egymást követő több User-agent sor egy csoportot oszt meg (két nevű feltérképezőnek erre van szüksége). Különálló rekordok, mint a Sitemap, bárhol állhatnak. A # bármely sorban megjegyzést kezd. A mezőnevek kis- és nagybetűtől függetlenek; az útvonalak nem.

VonalJelentése
User-agent: foobotAz alábbi szabályok azokra a feltérképezőkre vonatkoznak, amelyek nevében szerepel a foobot (kis- és nagybetűtől függetlenül)
User-agent: *Az alábbi szabályok minden feltérképezőre vonatkoznak, amelyre nincs specifikusabb csoport
Disallow: /private/Ne kérje le a /private/ kezdetű útvonalakat
Allow: /private/public/Kivétel, amely felülírja a fenti tiltást ezekre az útvonalakra (leghosszabb egyezés)
Disallow: (üres)Semmit nem tiltanak — a klasszikus „mindent engedélyez” forma
Sitemap: https://…/sitemap.xmlHol található a térképfájl; a feltérképezők többet is összegyűjthetnek
Crawl-delay: 30Nincs az RFC 9309-ben — régi bővítmény; a jelentős feltérképezők figyelmen kívül hagyják, vagy eltérően értelmezik
Hogyan születik ítélet (RFC 9309 §2.2.2)

1. Azt a csoportot kell megkeresni, amelynek User-agent értéke a feltérképező nevének részsztringje; az összes egyező csoport összevonandó. Ha nincs ilyen, a * csoport használandó; ha az sincs, mindent engedélyez. 2. Az útvonal minden szabállyal szemben tesztelendő: az illesztés előtag-alapú, kis- és nagybetű-érzékeny, a * és a $ helyettesítő karakterként működik. 3. A leghosszabb egyező szabály nyer; egyenlő hosszúság esetén az Allow felülírja a Disallow-t. Egyező szabály hiányában az útvonal engedélyezett. És bármit is mondanak a szabályok, a /robots.txt fájl implicit módon engedélyezett — különben a feltérképező nem olvashatná a szabályokat.

Gyakori hibák
  • A robots.txt elzárja a hozzáférést. Ez kérés a jól viselkedő feltérképezőknek, nem fal: a rosszindulatú letapogatók teljesen figyelmen kívül hagyják, és semmi hatása nincs arra, mit nyithat meg a böngésző. Valódi védelemhez hitelesítés kell; a keresőmotorok irányításához viszont a robots.txt a megfelelő eszköz.
  • A Disallow: / várása, hogy egy oldal kikerüljön a keresési találatokból. Ez a feltérképezést állítja le, nem az indexelést: ha más oldalak hivatkoznak rá, a keresőmotor továbbra is listázhatja az URL-t (leírás nélkül). A noindex meta címke vagy válaszfejléc az eltávolítás eszköze.
  • Sorrendre támaszkodás a hossz helyett. Az első egyező szabály nem nyer — a legspecifikusabb (leghosszabb) szabály nyer. A sorok átrendezése a viselkedés „javítására” hatástalan; ehelyett a kívánt szabályt kell hosszabbá tenni.
  • CSS és JS tiltása. A /*.css$ és /*.js$ tiltása régen gyakori „optimalizálás” volt; a megjelenítők ma már szükségesek ezekhez a fájlokhoz, hogy a látogatókéval azonos módon lássák az oldalt, és a félig megjelenített oldal rosszabbul rangsorolható.
  • Egy nagy csoport dokumentációként kezelése. A csoporton belüli megjegyzéssorok rendben vannak, de az első User-agent sor előtti, # nélküli prózabekezdés elemzési hiba, amely a megengedőbb elemzőket összezavarhatja.
GYIK

Minden feltérképező támogatja az Allow, * és $ elemeket? A nagyok igen, és az RFC 9309 mindhármat szabványosítja. Néhány kisebb vagy régebbi feltérképező csak a Disallow-t érti, és a *-ot szó szerint olvassa — ez az egyik ok, amiért érdemes egyszerűen tartani a szabályokat, amikor lehet.

Mit jelent egy üres Disallow:? „Semmi nem tiltandó” — a csoport kifejezetten mindent engedélyez. Általában akkor fordul elő, amikor valaki szerkeszt egy sablont, és az útvonalat törli, a direktívát nem; az ellenőrzés jelzi.

Mekkora lehet a fájl? Az RFC 9309 előírja, hogy az elemzők legalább 500 KiB-ot kezeljenek; ezen túl a feltérképező megállhat az olvasásban, és a maradékot tiltottnak tekintheti. Célszerű jóval ez alatt maradni, és ha óriásira nő, érdemes megkérdőjelezni, hogy a feltérképezés-vezérlés az oldalfejlécekben lenne-e jobb helyen.

Miért mondja az illesztő, hogy a /robots.txt engedélyezett még Disallow: / alatt is? Mert a szabvány kifejezetten ezt mondja: a robots fájl implicit módon engedélyezett. A Python urllib.robotparser többek között nem valósítja meg ezt a speciális esetet — a valós elemzők közötti kis eltérések egyike, amelyet ez az oldal a beépített ellenőrzésében dokumentál.

Kis- és nagybetű-érzékeny a Disallow útvonal? Igen. A /Private/ és a /private/ különböző útvonalak. A disallow mezőnév bármilyen betűkkel írható, de az értéknek pontosan egyeznie kell az URL-lel.