Esta guía de scraping web de robots.txt cubrirá:
- ¿Qué es robots.txt?
- ¿Por qué es importante para el Scraping web?
- Consecuencias de ignorarlo al rastrear un sitio
- Directivas comunes que debe conocer para el Scraping web
- Cómo utilizarlo en un proceso de Scraping web
¿Qué es robots.txt?
robots.txt es un archivo de texto que se utiliza para implementar el Protocolo de exclusión de robots (REP), un estándar para indicar a los robots web cómo interactuar con un sitio. En concreto, robots.txt especifica qué bots pueden visitar el sitio, a qué páginas y recursos pueden acceder, con qué frecuencia, etc. Estos bots suelen ser rastreadores web utilizados por motores de búsqueda como Google, Bing y DuckDuckGo para indexar la web.
Según las especificaciones de Google, cada dominio (o subdominio) puede tener un archivo robots.txt. Esto es opcional y debe colocarse en el directorio raíz del dominio. En otras palabras, si la URL base de un sitio es https://example.com, el archivo robots.txt estará disponible en https://example.com/robots.txt.
Por ejemplo, así es como se ve el archivo robots.txt de Bright Data:
User-agent: *
Disallow: /lum/
Disallow: /www/*.html
Disallow: /use-cases/fintech
Disallow: /products/datasets2/
Prohibido: /events/*
Prohibido: /wp-stage/*
Prohibir: /www/*
Prohibido: /svc/*
Host: brightdata.com
Mapa del sitio: https://brightdata.com/sitemap_index.xml
Como puede ver, se trata simplemente de un archivo de texto que contiene un conjunto de reglas y directivas para los robots web.
Tenga en cuenta que las directivas como User-agent y Disallow no distinguen entre mayúsculas y minúsculas. Por el contrario, los valores sí distinguen entre mayúsculas y minúsculas. Por lo tanto, /lum/ no es lo mismo que /Lum/.
¿Por qué es importante para el Scraping web?
Los bots a los que el archivo robots.txt proporciona instrucciones no son solo robots de rastreo de motores de búsqueda. También se tienen en cuenta todos los programas automatizados que interactúan con un sitio, incluidos los Scrapers web. Al fin y al cabo, los programas de rastreo no son más que bots automatizados. Además, suelen realizar rastreos web como los bots de los motores de búsqueda. Obtenga más información en nuestra guía comparativa sobre rastreo web frente a Scraping web.
Al realizar scraping en un sitio, es fundamental respetar el archivo robots.txt del sitio de destino. Hacerlo implicaría:
- Cumplimiento legal: los Scrapers web deben cumplir las normas definidas por los propietarios de los sitios web, para un enfoque ético del Scraping web.
- Reducción de la carga del servidor: los rastreadores y los Scrapers consumen muchos recursos, y respetar las directivas ayuda a evitar la sobrecarga de un sitio.
- Evitar la activación de medidas antibots: muchos sitios supervisan el tráfico web entrante para bloquear los bots no autorizados que no cumplen las normas declaradas.
Ahora la pregunta es: ¿qué ocurre si su script de scraping no respeta el archivo robots.txt? ¡Descubrámoslo en la siguiente sección!
Consecuencias de ignorar el archivo robots.txt al scrapear un sitio
Los sitios reaccionan de forma muy diferente ante las violaciones de su archivo robots.txt. A veces, no pasa nada. Otras veces, puedes enfrentarte a graves consecuencias. En general, estos son los escenarios que debes tener en cuenta al ignorar el archivo robots.txt en el Scraping web:
- Bloqueos e interrupciones del funcionamiento: es probable que las tecnologías antirraspado y antibots bloqueen tu IP de forma temporal o permanente. Esto compromete la eficiencia del proceso de rastreo.
- Acciones legales: si no cumple con las normas, se pueden emprender acciones legales. Esto es posible si la huella digital que deja el script de rastreo puede revelar su identidad. ¡Proteja su privacidad con un Proxy de Scraping web!
- Mayor escrutinio: los profesionales de la seguridad web, los ISP y las organizaciones de ciberseguridad pueden empezar a investigar sus actividades de scraping web.
Estos son solo algunos ejemplos, pero son suficientes para comprender la relevancia del asunto. Para cumplir con robots.txt, primero debe comprender el significado de sus instrucciones. ¡Es hora de profundizar en ello!
Directivas comunes de robots.txt que debe conocer para el Scraping web
La especificación REP solo incluye unas pocas directivas que puede especificar un archivo robots.txt. Con el tiempo, las especificaciones de los motores de búsqueda han introducido otras reglas posibles. Estas representan un estándar de facto y también deben tenerse en cuenta.
Ahora, eche un vistazo a las directivas de robots.txt más relevantes para el Scraping web.
User-agent
User-Agent especifica qué agentes de usuario pueden rastrear el sitio. Un agente de usuario puede ser un rastreador web, una araña, un Scraper o cualquier bot. Por lo general, los administradores de sitios web utilizan esta directiva para limitar o dar instrucciones a los rastreadores de motores de búsqueda específicos.
La sintaxis de la directiva es:
User-agent: <nombre_del_agente_de_usuario>
Disallow: [valor]
Si <nombre_del_agente_de_usuario> es *, significa que cualquier bot puede interactuar con el sitio. La instrucción Disallow debe contener rutas relativas y restringir el acceso a esas partes específicas del sitio.
Las cadenas de agente de usuario más populares son:
| Motor de búsqueda | Nombre del agente de usuario |
| Baidu | baiduspider |
| Bing | bingbot |
| Googlebot | |
| Yahoo! | slurp |
| Yandex | yandex |
Considera el siguiente ejemplo:
User-agent: *
Disallow: /private/
El archivo robots.txt anterior prohíbe a todos los agentes de usuario visitar las páginas de la ruta /private/. Por lo tanto, se prohíbe el acceso a /private/admin-login.php, pero también a /private/platform/dashboard.php. Esto implica que los archivos dentro de las subcarpetas también se ven afectados por la regla Disallow.
Tenga en cuenta que el mismo agente de usuario puede tener más de una regla Disallow:
User-agent: *
Disallow: /private/
Prohibido: /admin/
En este caso, se prohíben las rutas /private/ y /admin/.
Cuando Disallow no tiene ningún valor, se permite el acceso a todas las páginas:
Agente de usuario: *
Prohibir:
Si, por el contrario, contiene el valor /, significa que todas las páginas están prohibidas:
User-agent: *
Disallow: /
La norma oficial para el estándar robots.txt no menciona expresiones regulares ni comodines para Disallow, pero todos los principales motores de búsqueda los esperan. Por lo tanto, es bastante común ver algo como esto:
Prohibir: /*.php
Disallow: /resources/*.pdf
Esto impide que los bots accedan a los archivos PDF de /resources/ y a los archivos PHP.
Una instrucción opuesta a Disallow que no es estándar es Allow, que especifica las únicas rutas permitidas. Echa un vistazo al siguiente ejemplo:
User-agent: *
Permitir: /
Esto corresponde a:
User-agent: *
Disallow:
Permitir puede sobrescribir rutas específicas bloqueadas por No permitir:
Agente de usuario: *
Disallow: /private/
Permitir: /private/terms-and-conditions.php
En este ejemplo de robots.txt, todas las páginas bajo /private/ están prohibidas excepto /private/terms-and-conditions.php.
Tenga en cuenta que el mismo archivo robots.txt puede tener varias directivas User-agent para dirigirse a diferentes robots web:
User-agent: Googlebot
Prohibir:
User-agent: bingbot
Prohibido: /blog/
Sitemap
El mapa del sitio es una directiva no estándar que contiene la ubicación del mapa del sitio XML de un sitio web:
Mapa del sitio: https://www.example.com/sitemap.xml
Esta regla informa a los bots sobre la ubicación del mapa del sitio XML, que proporciona información útil sobre la estructura del sitio. Seguir las URL contenidas en un mapa del sitio facilita el rastreo de todo el sitio. ¡Explora nuestro Scraper de mapas de sitio!
Ten en cuenta que la URL que apunta al archivo del mapa del sitio debe ser absoluta.
Dado que un sitio puede tener varios mapas, el archivo robots.txt puede incluir muchas directivas Sitemap:
Sitemap: https://www.example.com/sitemaps/page-sitemap.xml
Sitemap: https://www.example.com/sitemaps/post-sitemap.xml
Sitemap: https://www.example.com/sitemaps/author-sitemap.xml
Crawl-delay
La directiva Crawl-Delay, no oficial y poco popular, define cuántos segundos deben esperar los rastreadores web entre solicitudes sucesivas al sitio:
User-agent: *
Crawl-delay: 5
Es una directiva específica del agente de usuario cuyo objetivo es evitar la sobrecarga de los servidores. En este ejemplo, se indica a todos los agentes de usuario que esperen un retraso de 5 segundos entre visitas a la página.
Frecuencia de solicitud
La directiva Request-Rate, poco común, específica del agente de usuario y no estándar, especifica el número máximo de solicitudes que un agente de usuario puede realizar al sitio web en un periodo de tiempo determinado:
Agente de usuario: *
Frecuencia de solicitud: 1/10
Por ejemplo, esta regla indica a todos los agentes de usuario que limiten sus solicitudes a una cada 10 segundos.
El formato que siguen los valores de la tasa de solicitud es:
<número_de_solicitudes>/<segundos>
Esta directiva es similar a Crawl-Delay, ya que ambas ayudan a evitar la sobrecarga del servidor. La principal diferencia es que Crawl-delay lo consigue imponiendo un retraso, mientras que Request-rate lo hace aplicando restricciones de limitación de velocidad.
Cómo utilizar robots.txt en un proceso de Scraping web
Ahora ya sabes qué es robots.txt y cómo funciona. Solo queda ver cómo integrar su uso en un proceso de Scraping web. Esto es lo que debes hacer para respetar el archivo robots.txt para el Scraping web:
- Acceda al archivorobots.txt del sitio de destino:
- Envíe una solicitud HTTP GET a la ruta /robots.txt para descargar el archivo o abrirlo en el navegador.
- Examine su contenido:
- Lea las directivas contenidas en el archivo robots.txt.
- Comprueba si hay reglas Disallow que restrinjan el acceso a URL o directorios específicos.
- Busque reglas Allow que puedan conceder acceso a determinadas áreas dentro de rutas no permitidas.
- Examine las directivas Crawl-delay y Request-rate, si se especifican.
- Cree su script de scraping:
- Cree o modifique su Scraper, asegurándose de que cumple con las reglas establecidas en robots.txt.
- Evite acceder a URL que no estén permitidas para su agente de usuario.
- Implemente mecanismos de limitación en su Scraper para respetar los límites de Crawl-delay o Request-rate.
Como puede ver, debe analizar las directivas contenidas en robots.txt antes de crear su Scraper. Solo así podrá evitar las consecuencias mencionadas anteriormente.
¡Et voilà! ¡Ahora ya es un experto en Scraping web con robots.txt!
Conclusión
En este artículo, ha visto qué es robots.txt, por qué lo utilizan los sitios web y cómo puede ayudar a su Scraper a evitar ser bloqueado. En concreto, ha analizado las directivas que pueden afectar a sus objetivos de recuperación de datos en línea. También ha aprendido a estructurar un proceso de rastreo ético en torno a él.
Desgraciadamente, por muy compatible que sea tu script con robots.txt, las soluciones antirraspado pueden seguir bloqueándote. ¿Cómo evitarlo? Con un Proxy. Hay varios proveedores disponibles en línea, y probarlos todos llevaría meses. Afortunadamente, hemos resuelto ese problema por ti.
Bright Data controla los mejores servidores Proxy y presta servicio a más de 20 000 clientes y empresas de la lista Fortune 500. Su excepcional red mundial de Proxy incluye:
- Proxy de centro de datos: más de 770 000 IP de centros de datos.
- Proxies residenciales: más de 72 millones de IPs residenciales en más de 195 países.
- Proxy ISP: más de 700 000 IP de ISP.
- Proxy móvil: más de 7 millones de IP móviles.
En general, se trata de una de las infraestructuras de proxies orientadas al scraping más grandes y fiables del mercado. Hable con uno de nuestros representantes de ventas y descubra cuál de los productos de Bright Data se adapta mejor a sus necesidades.