Cómo bloquear las arañas baidu

15

La mayoría de mis visitas son de arañas baidu. No creo que ayude en absoluto a los motores de búsqueda, así que estoy pensando en cómo bloquearlos. ¿Podría hacerse esto a través de iptables? Estoy usando nginx como mi servidor web.

Zhianc
fuente
2
¿Por qué no debería? No quiero tráfico chino.
Zhianc
66
No digo que no debas, estoy preguntando por qué molestarse en absoluto. ¿Te están lastimando de alguna manera? ¿No es más fácil simplemente ignorar? "No querer tráfico chino" no es realmente una respuesta aquí, solo xenofobia limítrofe. Y bloquear un motor de búsqueda no es casi lo mismo que bloquear a los chinos, por lo que ni siquiera tiene sentido. Me pareció que podría haber estado buscando una solución basada en un problema defectuoso. Pero aparentemente solo quieres bloquear arbitrariamente alguna araña, así que adelante, supongo.
Su '
77
@Su 'Descubrí que la araña baidu se arrastró de manera extremadamente agresiva en mi sitio, causando retrasos por tráfico legítimo. Además, también descubrí que la araña baidu no obedece las robots.txtreglas.
starbeamrainbowlabs
2
Recibo alrededor de 1-2 golpes por segundo de las supuestas arañas Baidu. Cada golpe genera un nuevo archivo de sesión en mi servidor. Tengo un script para eliminar esos archivos de sesión, pero esas arañas también sobrecargan mi servidor MySQL. Definitivamente quiero bloquearlos.
Buttle Butkus
2
Puede confirmar que baiduspider o algo que se hace pasar por baiduspider rastrea sitios sin ética e ignora las directivas de robots.txt.
JMC

Respuestas:

8

En su archivo robots.txt agregue

#Baiduspider
User-agent: Baiduspider
Disallow: /

#Yandex
User-agent: Yandex
Disallow: /
Anagio
fuente
55
¿Qué pasa si no respetan el archivo robots.txt?
Zhianc
55
Sé que los accesos "Baiduspider / 2.0" desde direcciones IP chinas no obedecen a robots.txt en mi sitio. Además, a menudo usan accesos coordinados (con algunos minutos de diferencia) desde el mismo bloque de dirección IP que no usa el ID de agente de usuario "Baiduspider".
mgkrebbs
Yandex obedece robots.txt. Los bloqueé hasta que nos dimos cuenta de que una buena parte de nuestro negocio proviene de Rusia y tuve que eliminar el bloqueo. Baidu, tienes que revisar los bloques de red. No todos los UA anunciados por Baidu son en realidad Baidu, por lo que debe hacer un bloqueo de robots.txt para el tráfico legítimo de Baidu y luego hacer un bloque de cadena UA en su .htaccess para lo que queda y luego desperdiciar su vida haciendo bloque por identificación de bloque y negación para el resto que rodea el bloque de cadenas UA. Es tanto trabajo como reforzar su servidor para tomar el tráfico.
Fiasco Labs
2
Tengo User-agent: *y se siguen haciendo accesos a Baiduspider.
reinierpost
3
Yandex es un motor de búsqueda diferente para el mercado ruso, por lo que solo incluirlo aquí cuando la pregunta no lo hace en absoluto y sin escribir nada al respecto es algo irresponsable.
Coleccionista
7

Acabo de bloquear con éxito que el robot Baiduspiderde búsqueda chino acceda a cualquier contenido de mi sitio. Tomé la decisión de hacerlo debido a las siguientes razones.

Razones para decidir bloquear

  1. Aproximadamente cada vigésima solicitud a mi servidor era de un bot de baidu. Este es un comportamiento descortés. Baidubot representa el 5% del uso de ancho de banda de mis sitios.
  2. Hago un gran esfuerzo para mantener pequeños los recursos en mi sitio y aprovechar la tecnología como el almacenamiento en caché del navegador para obtener pequeñas ganancias en velocidad y ancho de banda. Es lógico considerar liberar ese 5% bloqueando Baidubot.
  3. La posibilidad de perder algo de tráfico chino es un riesgo aceptable para la empresa, ya que el contenido del sitio es geográficamente específico para el Reino Unido, no hay una versión en idioma chino y los ingresos se generan a partir de la publicidad dirigida al mercado del Reino Unido.

Por lo tanto, espero que Su 'y otras personas preocupadas por la xenofobia entiendan que esta decisión es una respuesta fría a una cantidad descortés de solicitudes.

Método

Baiduspider accede a mi servidor usando muchas direcciones IP diferentes, pero estas direcciones caen dentro de ciertos rangos. Entonces mi archivo .htaccess ahora contiene las siguientes líneas:

order allow,deny 
allow from all
# Block access to Baiduspider 
deny from 180.76.5.0/24 180.76.6.0/24 123.125.71.0/24 220.181.108.0/24 

La línea inferior básicamente describe 4 rangos de IP en los que sé que Baiduspider y SOLO Baiduspider accede a mi servidor. Cada uno de los 4 rangos tiene 256 direcciones consecutivas (un total de 1024). Tenga en cuenta que la sintaxis de los rangos de IP en la deny from...línea puede ser muy confusa si no ha leído los rangos de CIDR. Solo entienda que 0/24significa un rango de tamaño de 256 a partir de 0, por lo que en 180.76.5.0/24realidad significa cada dirección IP entre 180.76.5.0y 180.76.5.255. Sí, no es particularmente obvio! Pero si desea saber por qué o simplemente disfruta de sentirse confundido, vaya a http://www.mediawiki.org/wiki/Help:Range_blocks

Resumen

Internet debe ser gratuito, abierto y justo. Pero eso significa que organizaciones como Baidu aprenden a obedecer Robots.txt y son menos codiciosos con la regularidad de sus rastreos. Mi solución consiste en jugar con configuraciones muy potentes, así que antes de perder el tiempo con el archivo .htaccess, asegúrese de hacer una copia de seguridad de su original, listo para deshacer si derriba su servidor en un resplandor de gloria. Proceda bajo su propio riesgo.

Martin Joiner
fuente
sus bloques de direcciones IP pueden cambiar, por lo que necesita mantenimiento de vez en cuando
pide el
5

Puede usar la siguiente directiva robots.txtpara no permitir el rastreo de su sitio.

# robots.txt
User-agent: Baiduspider
Disallow: /

Sin embargo, los rastreadores pueden decidir ignorar el contenido de su archivo robots.txt. Además, los motores de búsqueda pueden almacenar en caché el archivo y lleva tiempo antes de que se reflejen los cambios.

El enfoque más efectivo es usar las capacidades de su servidor. Agregue la siguiente regla a su nginx.confarchivo para bloquear Baidu a nivel de servidor.

if ($http_user_agent ~* ^Baiduspider) {
  return 403;
}

Recuerde reiniciar o volver a cargar Nginx para aplicar los cambios.

Simone Carletti
fuente
3

Simplemente decidí bloquear a Baidu ya que la cantidad de tráfico que nos estaba dando era demasiado insignificante para su escaneo agresivo. Además, ahora ejecutan un agente que se hace pasar por un navegador y lanza código JavaScript (como Google Analytics) y daña nuestras estadísticas.

La buena versión está actualizando su robots.txt con lo siguiente

User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider-video
Disallow: /
User-agent: Baiduspider-image
Disallow: /

Pero considerando lo que otros han escrito aquí y ellos usando un agente de usuario que oculta su presencia, bloquearía sus direcciones IP por completo. Lo siguiente es cómo se hace en nginx

# Baidu crawlers
deny 123.125.71.0/24;
deny 180.76.5.0/24;
deny 180.76.15.0/24;
deny 220.181.108.0/24;
Coleccionista
fuente
2

Solución de Wordpress (no es la mejor pero ayuda)

El mismo problema con la araña Biadu, tan agresivo que mi caja ocupó más de 35 en mi consola usando la parte superior. Obviamente, incluso una computadora rápida no puede manejar efectivamente solicitudes externas que se ejecutan a 35 ...

Rastreé el número de IP (de ese edificio de la Universidad ????) para ser varios cientos, principalmente con dos agentes de uso)

¿Consecuencia directa? Como tengo un servidor en la nube, tuve que actualizarlo a una memoria más alta para permitir una respuesta descendente.

Respuesta anterior:

#Baiduspider
User-agent: Baiduspider
Disallow: /

Baidu parece totalmente incapaz de respetar la indicación robot.txt.

Lo que hice:

Instalé el complemento WP-Ban para Wordpress (gratis) y prohibí lo siguiente:

AGENTES DE USUARIO:

  • Baiduspider+(+http://www.baidu.com/search/spider.htm)

  • Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

Además, usando Wp Super Cache, redirijo la página de error relativo a una página estática, por lo que toda la instalación de wordpress no / o al menos solo para los usuarios prohibidos verifica la tabla de datos Mysql.

(Este es el estándar de Wordpress blablabla, por lo que todos los que puedan instalar un complemento de Wordpress pueden hacerlo, ya que no se requiere codificación ni acceso ftp para este procedimiento)

Estoy de acuerdo con todos: Internet es gratis, prohibir a quien sea o lo que sea absolutamente lo último que alguien debería hacer, pero Baidoo hoy me cuesta USD 40 más / mes, solo para arañar un sitio web escrito en portugués, y tengo algunas dudas si hay Muchos chinos y visitantes pueden leer y comprender este idioma.

Claudio Klemp
fuente
1

Puede bloquear por dirección IP usando ngx_http_access_modulenginx. Para bloquear una sola IP, puede agregar una línea al archivo conf como

deny 12.34.567.1;

Para bloquear un rango, use la notación CIDR , como 12.34.567.1/24para el bloque de subred de 24 bits (de 256 direcciones IP) que incluye la dirección IP 12.34.567.1. Para más detalles ver, por ejemplo, esta página .

mgkrebbs
fuente
1

Utilice .htaccess con

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Baidu [NC]
RewriteRule .*  - [L,F]

El "RewriteEngine On" le permite que las siguientes líneas se analicen correctamente. HTTP_USER_AGENT es la línea donde las arañas se identifican a sí mismas. La condición es verdadera si la línea contiene "MJ12bot" o "Baidu". NC significa "no distingue entre mayúsculas y minúsculas" y puede encadenar condiciones con OR. La última línea no debe contener "O" o la regla no funciona.

Baidu es particularmente desagradable porque intenta leer las entradas de Wordpress ("fckeditor", "wp-content") para lo cual no tiene absolutamente ninguna razón. MJ12bot es también uno de los bichos malos.

La regla de reescritura significa bloquear la araña con un 403 prohibido ([F]) para acceder a todos los archivos (. * Es una expresión regular para cualquier archivo) y detener la evaluación adicional ([L]) de htaccess.

Thorsten S.
fuente
1
La Fbandera implica L, por lo que no necesita incluir explícitamente la Lbandera aquí. Además, un patrón como ^.*Baidues igual que simplemente Baidu.
MrWhite