Sesiones y cookies en Web Scraping

Raspando, Jan-24-20225 minutos de lectura

No se pueden pasar por alto las sesiones y las cookies en el ámbito del web scraping. La mayoría de las aplicaciones web dependen de las sesiones y las cookies para recordar a cada usuario distinto y ofrecerles una mejor experiencia de usuario. Pero, ¿qué son exactamente las sesiones y las cookies en el mundo de la programación web, y cómo funcionan? En este artículo

No se pueden pasar por alto las sesiones y las cookies en el ámbito del web scraping. La mayoría de las aplicaciones web dependen de sesiones y cookies para recordar a cada usuario distinto y ofrecerles una mejor experiencia de usuario. 

Pero, ¿qué son exactamente las sesiones y las cookies en el mundo de la programación web y cómo funcionan? En este artículo, responderemos a todas esas preguntas antes de pasar a cómo utilizar las sesiones y las cookies en el web scraping. En primer lugar, comenzaremos con las sesiones.

¡Vamos a sumergirnos, amigos!

¿Qué son las sesiones en la web?

En términos más sencillos, una sesión es simplemente una serie de interacciones del usuario entre su dispositivo y el servidor al que se conecta. La duración de una sesión puede ser desde el momento en que un dispositivo establece la comunicación con un servidor. Una sesión finaliza cuando un usuario completa una conexión con una aplicación web.

Por otro lado, puede haber sesiones que el temporizador invoca cuando un usuario empieza a visitar un sitio web. Un servidor web establece estos temporizadores para un periodo específico, y la sesión expira cuando el temporizador disminuye.

Una sesión puede dividirse en:

  1. Con estado: Al menos una de las partes conserva información relativa a la comunicación. Esto significa que cuando un cliente establece una comunicación con el servidor, éste sirve al usuario recuperando la información sobre los datos de la sesión anterior.  
  2. Sin estado: Un servidor no guarda los datos de un cliente en un servidor en una sesión sin estado para que los datos se utilicen en la siguiente sesión. En su lugar, el cliente almacena los datos de la sesión y los pasa al servidor cuando y como los necesita. Esto implica que cuando un cliente inicia una nueva sesión, no se basa en los datos intercambiados en la sesión anterior.

Profundicemos en el funcionamiento de una sesión para entender mejor los conceptos.

¿Cómo funcionan las sesiones?

Aunque puede haber varios tipos de sesiones, los fundamentos en los que operan siguen siendo los mismos. Empecemos con un tipo de sesión común, la sesión HTTP.

Sesión HTTP

Cuando un dispositivo cliente inicia una solicitud de conexión a un servidor a través de un navegador web, el servidor acepta la solicitud y devuelve la respuesta creando una sesión. Junto con la respuesta, el servidor también devuelve el ID de sesión. A continuación, el cliente envía más peticiones junto con el ID de sesión, y el navegador responde posteriormente. 

Todo el proceso continúa hasta que el usuario se da de baja.

Ejemplos típicos de Sesiones

Ejemplos concretos de sesiones son visitar una página web de comercio electrónico y añadir artículos a un carrito de la compra, rellenar formularios web, desplazarse por una página web y que un alumno acceda a un portal web iniciando sesión para ver sus calificaciones.

Posteriormente, en cada visita, el servidor y el cliente intercambian datos utilizando un identificador de sesión. Un directorio temporal del servidor guarda la información de la sesión, como las páginas que ha consultado, las credenciales de usuario, los datos que ha seleccionado en casillas de verificación o listas desplegables, los artículos que ha añadido a un carrito de la compra, etc.

A continuación, estos datos se ponen a disposición de cada página que haya visitado en un sitio web.

En algunas páginas web, los desarrolladores establecen sesiones basadas en un temporizador. El principal objetivo de utilizar un temporizador es disuadir a los usuarios de realizar una actividad ideal durante un periodo prolongado. Después de un tiempo de espera, tales sesiones expiran, y el servidor web inicia una nueva sesión para cualquier otra interacción.  

El diagrama siguiente es un ejemplo de sesión.

Para proporcionar una experiencia de usuario única, junto con una sesión, los navegadores utilizan un concepto llamado cookies. Vamos a descubrirlo en la siguiente sección.

¿Qué son las cookies?

Cuando un cliente inicia una petición con un servidor, éste crea la sesión y envía la respuesta con una cookie. Ahora bien, las cookies son pequeños fragmentos de datos, como las páginas que ha visitado, los datos del agente de usuario, el tiempo que estuvo en una página web, otros datos personales al entrar en el sitio web y las cookies que ha aceptado previamente y que crea el servidor.

El servidor crea estos datos en un pequeño archivo de texto y lo envía al cliente. Después, el cliente guarda el archivo cookie en el navegador del usuario. A continuación, en cada solicitud posterior, el cliente también envía este archivo de cookies. A continuación, el servidor recupera los datos de sesión pertenecientes a ese usuario concreto y devuelve la respuesta al cliente. 

El proceso mencionado se ilustra en el diagrama siguiente:

Ejemplo de uso de cookies

Supongamos que está rellenando un formulario en línea para comprar un producto. Entonces, tras rellenar todos tus datos personales y seleccionar el artículo para la cesta de la compra, cierras accidentalmente la ventana del navegador antes de pasar por caja. 

Cuando vuelvas a abrir esa ventana, te darás cuenta de que no has tenido que volver a introducir todos los datos y seleccionar de nuevo el artículo. Puedes continuar desde donde lo dejaste. Todo esto es posible gracias a la combinación cookie-sesión que acabas de aprender.

Como puede ver, la combinación cookie-sesión mejora la experiencia del usuario, y los sitios web serían ineficaces sin ellas.

Cookies persistentes frente a cookies de sesión

Una cookie de sesión se borra cuando usted cierra su navegador, por lo que no retiene ninguna información en su dispositivo. Además, no envía ninguna información fuera de su dispositivo.

En cambio, las cookies persistentes se almacenan en su disco duro hasta que caducan o hasta que usted las borra. Estas cookies recopilan datos sobre su historial de navegación, el tiempo que ha permanecido en una página web concreta, los dispositivos que ha utilizado para acceder al sitio web, etc.

Casos de uso de las cookies

En la mayoría de las circunstancias, los desarrolladores web utilizan cookies para ofrecer una experiencia personalizada a sus usuarios. Sin embargo, son más conocidas por ser utilizadas por sitios web que requieren temas personalizados y credenciales de inicio de sesión. Además, si profundiza aún más, se dará cuenta de que también intervienen en la gestión y el seguimiento de sesiones. Echemos un vistazo a cada uno de ellos:

Gestión de sesiones

Usted ya sabe que una sesión es una interacción continua con una página web hasta que el usuario termina o el temporizador termina la sesión. Por eso, cuando se habilitan las cookies en una página web, éstas almacenan cada uno de estos datos de sesión para que un usuario no tenga que rellenar toda la información de un formulario en línea o incluso volver a iniciar sesión si cierra accidentalmente la ventana del navegador. 

Por lo tanto, todas estas acciones facilitan la navegación web para que no tengas que realizar tareas repetitivas.

Seguimiento

Las cookies específicas se conocen como cookies de seguimiento, ya que rastrean a los usuarios a través de numerosos sitios o servicios y recopilan datos. Las empresas utilizan los datos que recopilan las cookies de seguimiento para marketing directo, como anuncios dirigidos.

Las cookies de seguimiento funcionan soltando un archivo de texto en un navegador mientras se visualiza un sitio web. Este archivo de texto recopila datos, incluida la actividad del usuario en un sitio web, la ubicación geográfica, el historial de navegación y las diferentes tendencias que el cliente ha utilizado para comprar.  

Aunque está fuera del alcance del artículo afirmar si el uso de cookies de destino es ético o no, sin embargo, sin duda podría molestar a los usuarios. Pero los usuarios pueden eliminar estas cookies ya que no están obligados a ver estos anuncios.

Sin duda podrías ampliar este tema buscando en Google.

Preferencias personalizadas

Todos tenemos preferencias personales a la hora de navegar por Internet. Los propietarios y desarrolladores de sitios web lo entienden, y por eso utilizan cookies para personalizar las preferencias. Estas preferencias personalizadas incluyen servir el contenido y vender servicios al usuario en función de su ubicación, idioma, tipo de navegador, versión del sistema operativo y mucho más.

Los sitios web pueden cambiar su contenido para que la gente pueda recorrer la página con facilidad.

¿En qué se diferencia una cookie de una sesión?

Ahora esperamos que haya comprendido lo que son las sesiones y las cookies. Las cookies almacenan información sobre la navegación del usuario y otros datos personales en su ordenador. En cambio, el servidor crea una sesión que retiene los datos temporalmente y finaliza cuando el usuario cierra la interacción con el sitio web.

Por otro lado, una cookie reside en su ordenador hasta que caduca o el usuario la borra.

El siguiente cuadro resume aún más las diferencias:

Sesión vs. Cookies

¿Cómo se utilizan las sesiones y las cookies en el web scraping?

Sesiones

Cuando se trata de sesiones en el raspado web, los proxies actúan como puente. Por ejemplo, cuando te conectas a un sitio web para raspar datos, el servidor que aloja el sitio web crea una sesión entre tú y el sitio web.

Por ello, algunos sitios web pueden imponer tiempos de espera cuando se raspan grandes conjuntos de datos. Por otra parte, cuando envías numerosas solicitudes desde la misma dirección IP, el sitio web de destino te bloqueará, asumiendo que estás llevando a cabo una actividad sospechosa.

Por lo tanto, es necesario rotar las solicitudes utilizando proxies residenciales, que establecen varias sesiones para cada solicitud. 

La ventaja significativa del método anterior es que no sólo sería capaz de raspar los datos en paralelo, pero también aparecería sitio web de destino como usted está enviando tráfico orgánico.

Como resultado, es menos probable que el sitio web de destino le bloquee. Además, debido a esta razón, el web scraping se asocia principalmente con sesiones rotativas más que con sesiones fijas.  

Puede consultar el artículo Sesiones fijas vs. Sesiones rotativas para obtener más información sobre los dos tipos de sesiones.

Cookies

Reitero que el principal obstáculo del web scraping es evitar los bloqueos que impone el sitio web de destino. Ahora hemos visto cómo las sesiones podrían superarlo con proxies rotatorios; sin embargo, una sesión por sí sola no resolvería el problema.

Como se ha comentado en algunas de las secciones anteriores, el servidor web de destino envía las cookies a un dispositivo cliente. Por lo tanto, cuando se realizan solicitudes a determinadas páginas web para raspar datos, es necesario tener acceso a las cookies adecuadas para acceder a los datos requeridos. 

Por ejemplo, supongamos que accede a la página de un producto concreto en un sitio web de comercio electrónico que no le proporciona cookies. Entonces habrá una gran posibilidad de que el sitio web de destino le identifique como una actividad bot.

Así que como remedio para este problema, primero puede visitar la página de inicio de este sitio web de comercio electrónico específico y obtener el archivo de datos de cookies. A continuación, puede enviar las solicitudes de raspado con múltiples proxies residenciales junto con el archivo de cookies.

La principal ventaja de este enfoque es que es menos probable que el sitio web de destino le bloquee porque no ha enviado el archivo cookie correspondiente. Además, al sitio web de destino le parecerá que las solicitudes proceden de distintos usuarios.

Conclusión

Esperamos que en este artículo haya adquirido una visión general de lo que son las sesiones y las cookies en mayor profundidad. Las cookies y las sesiones forman una parte integral del web scraping, ya que si no se comprende su funcionamiento se producirían bloqueos por parte de los sitios web de destino.

Su proceso de web scraping será sin duda fluido y sin ningún obstáculo cuando utilice cookies y sesiones correctamente con proxies.