¿Qué son los proxies ISP y cómo utilizarlos para el Web Scraping?

Mihnea-Octavian Manolache el 22 de febrero de 2023

blog-image

Los proxies son un aspecto muy importante del web scraping. Existen principalmente tres tipos de proxies. Hay proxies de centro de datos, residenciales e ISP. Cada tipo tiene sus propios casos de uso. Sin embargo, hay poca o ninguna información disponible sobre lo que significan y cuándo utilizarlos en el web scraping. Y son sobre todo los proxies ISP los que los redactores técnicos no saben manejar. Por eso, hoy centraremos nuestra atención en este tipo de proxies. Al final del artículo de hoy, usted debe tener una sólida comprensión de:

  • ¿Qué es un proxy en general y cómo funciona?
  • Cuál es la definición de un proxy ISP y cuáles son sus particularidades
  • Cómo y por qué utilizar proxies ISP para el web scraping

¿Qué es un servidor proxy?

En pocas palabras, los proxies son intermediarios entre clientes y servidores. Un proxy actúa como intermediario para las peticiones de clientes que buscan recursos de otros servidores. El flujo de una relación cliente - proxy - servidor se parece a esto:

  1. Un cliente se conecta al servidor proxy, solicitando algún servicio de un servidor de destino
  2. El servidor proxy evalúa la solicitud, se conecta al servidor de destino y obtiene el servicio solicitado.
  3. Una vez recibido, vuelve a transferir el servicio al cliente, sin modificaciones.

Aparte de eso, los proxies también se utilizan para:

  • aumentar la seguridad
  • mejorar el rendimiento de la red
  • filtrar el tráfico de red
  • bloquear sitios web no deseados
  • eludir las restricciones geográficas de acceso a internet

¿Cuál es la definición de proxy ISP?

Como hemos dicho en la introducción, existen tres tipos principales de proxies. Para los dos primeros, la definición es bastante sencilla. Los proxies de centros de datos son proxies que pertenecen a centros de datos. Lo que significa que sus direcciones IP están asociadas al centro de datos. Los proxies residenciales tienen la dirección IP asociada a una ubicación física. Además, estas direcciones IP están registradas a nombre de una persona u organización específica.

Ahora, cuando se trata de proxies IPS, hay un poco de confusión. En primer lugar, ISP significa Proveedor de Servicios de Internet. Y como puedes imaginar, todas las IPs residenciales se originan en los ISPs. Bueno, este pequeño aspecto responde parcialmente a la pregunta. Los proxies ISP encajan en algún lugar entre los proxies de centros de datos y los proxies residenciales.

La mayoría de las veces, encontrará que un proxy ISP es en realidad un proxy residencial, alojado en una máquina de un centro de datos. Por lo tanto, estos proxies heredan ventajas de los otros dos. Y la lista de ventajas incluye en su mayoría (pero no se limitan a):

  • Legitimidad de la IP: el uso de una dirección IP residencial reduce el riesgo de detección de bots.
  • Velocidad: alojar el proxy en un servidor de centro de datos aumenta el rendimiento del servicio.

¿Por qué utilizar proxies ISP para el web scraping?

El uso de proxies en el web scraping es una necesidad bastante común. Pero antes de hablar de los proxies ISP en particular, permítanme decirles por qué los proxies son importantes para el scraping. Para empezar, definamos qué es el web scraping. A grandes rasgos, el web scraping consiste en acceder a un servidor con el objetivo de extraer recursos. Y eso se suele hacer utilizando software automatizado. Además, el web scraping suele implicar el envío de muchas peticiones al servidor objetivo en un corto periodo de tiempo.

Como puedes imaginar, esto supone una gran carga para el servidor. Por eso, las plataformas web no suelen estar "contentas" con el acceso de los "scrapers" a sus servidores. Para evitar el acceso de software automatizado, estas plataformas suelen utilizar algún tipo de sistema de detección y prevención. Y uno de los métodos de detección es de lo más básico: comprobar la dirección IP. Es de sentido común pensar que las direcciones IP asociadas a centros de datos tienen más probabilidades de albergar bots.

Y creo que esto responde bastante bien a la pregunta. Si tenemos en cuenta las principales ventajas comentadas anteriormente, comprenderemos mejor la respuesta. Principalmente utilizamos proxies ISP en el web scraping para aumentar nuestra tasa de éxito manteniendo un rendimiento óptimo. Pero eso no es todo. Exploremos otros escenarios:

#nº 1: Acceso a sitios web específicos

Seguro que alguna vez se ha encontrado con sitios web que se dirigen a visitantes de lugares específicos. En SEO, este concepto se conoce como contenido específico de geolocalización. Lo que ocurre es que los sitios web comprueban primero el origen de la dirección IP del cliente. Y si coincide con su patrón (por ejemplo, si se trata de un sitio web estadounidense dirigido únicamente a clientes estadounidenses), permitirán que el cliente se conecte. Si, por el contrario, el cliente es de un país extranjero, el sitio web bloqueará su acceso.

En web scraping, este es un escenario muy común. Así que, como solución, utilizaremos proxies de ese país específico. Puede que primero quieras probar un proxy de centro de datos. Si sigues bloqueado, puedes probar con proxies de ISP, que, de nuevo, ofrecen una mayor tasa de éxito.

#2: Envío de un gran número de solicitudes

Cuando queremos acceder a muchos recursos en un servidor, podemos poner mucha carga en ese servidor. Y los servidores normalmente lo verán como un abuso y bloquearán la dirección IP que está enviando todas estas peticiones. En el web scraping, para evitar que nos bloqueen, utilizaríamos un sistema rotatorio que cambia entre proxies de ISP. De esta forma, el servidor "pensará" que hay diferentes usuarios residenciales accediendo a él. Así, las peticiones masivas no se bloquearán.

¿Cómo utilizar proxies ISP para el web scraping?

Existen principalmente dos tipos de raspadores web:

  1. Basado en clientes HTTP simples
  2. Capaz de renderizar JavaScript

El primer tipo no es tan complejo y suele ser más rápido, ya que no requiere renderizar JavaScript. No es diferente de enviar un comando `curl`. Sin embargo, la mayoría de los sitios web modernos dependen en gran medida de JavaScript. Un buen ejemplo es usar un simple cliente HTTP para hacer scraping de una plataforma web construida con React o Next JS. En tales escenarios, es probable que obtenga de vuelta un archivo HTML que dice "por favor, active JavaScript". Aquí hay un ejemplo sólido de una aplicación que he construido con React:

~ » curl https://<REACT_APP>.com

...<body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>

Por lo tanto, si desea crear un scraper moderno, lo más probable es que necesite utilizar una versión automatizada de un navegador web. Esto te ayudará a renderizar JavaScript y también a realizar diferentes acciones en tu objetivo.

Normalmente uso JavaScript y Puppeteer para mis ejemplos. Pero creo que esta vez voy a cambiar a mi primer y favorito lenguaje de programación: Python. Y la solución para webdrivers en Python es Selenium. Así que vamos a ver cómo construir un raspador web con selenio y proxies ISP:

#1: Crear un nuevo proyecto

Lo primero es lo primero, vamos a crear un nuevo directorio que contendrá nuestros archivos. A continuación, abre el proyecto en tu IDE favorito (el mío es Visual Studio Code) y abre una nueva terminal. Para abrir una nueva terminal desde VSCode, ve a Terminal > Nueva terminal. Crearemos un nuevo entorno virtual dentro del proyecto y lo activaremos:

~ " python3 -m venv env && source env/bin/activate

En tu proyecto, vamos a crear un nuevo archivo 'scraper.py' y añadirle algo de código. La estructura básica de un scraper con Selenium, desde una perspectiva de programación funcional es:

from selenium import webdriver

def scrape_page(url):

driver = webdriver.Chrome()

driver.get(url)

return driver.page_source

Y ya está. En 5 líneas de código:

  1. Estamos disparando un navegador automatizado
  2. Accedemos a nuestro objetivo
  3. Y estamos recogiendo sus recursos.

Pero recuerde que queremos utilizar proxies ISP con selenio. De tal forma que nuestro navegador no sea el más sigiloso, pero digamos que más indetectable. Por suerte, las cosas son bastante sencillas en Python (y por eso me encanta). Así es como introducimos proxies en Selenium:

from selenium import webdriver

def scrape_page(url, proxy):

options = webdriver.ChromeOptions()

options.add_argument('--proxy-server=%s' % proxy)

driver = webdriver.Chrome(options=options)

driver.get(url)

return driver.page_source

print(scrape_page('http://httpbin.org/ip', '75.89.101.60:80'))

Sólo añadimos más líneas dentro de la función. La última es para llamar a la función. Si ejecutas el script ahora, probablemente deberíamos ser capaces de ver que la petición se origina desde 75.89.101.60. Para el propósito de este ejemplo, he usado un servidor proxy gratuito de aquí. Pero si quieres construir un scraper real, te sugiero que busques en fuentes más fiables. Preferiblemente, proveedores proxy que ofrezcan también proxies ISP.

¿Cómo comprobar el origen de una dirección IP?

Hay algunas maneras de comprobar si una dirección IP se origina en un proxy ISP. Pero ya que estamos hablando de DevOps hoy, probablemente deberías sentirte cómodo con el uso de la terminal. Hoy te presentaré a `whois`.

En Unix y sistemas operativos similares, `whois` está incorporado. Es una utilidad de línea de comandos que permite a los usuarios buscar información sobre objetivos. Y los objetivos pueden ser nombres de dominio o direcciones IP. Así que vamos a abrir una nueva ventana de terminal y probar este comando.

En primer lugar, vamos a enviar un comando `curl` a la API ofrecida por ipify.org. De esta forma, puedes obtener tu propia dirección IP y realizar la prueba utilizándola. Si no estás familiarizado con `curl`, repasa mi artículo sobre cómo usar curl.

~ » curl api.ipify.org

<IP_ADDRESS>

Now that we have an IP address to test on, just send your `whois` command. I’ve used my own IP, but feel free to replace <IP_ADDRESS> with yours:

~ » whois <IP_ADDRESS>

...

inetnum: 82.78.XX.0 - 82.78.XX.XX

netname: RO-RESIDENTIAL

descr: RCS & RDS Residential CGN

descr: City: Bucuresti

remarks: INFRA-AW

country: RO

...

La salida es más grande, pero quería que tuvieras una visión general de la facilidad con la que se detecta una IP residencial. También hay APIs públicas que rastrean IPs de centros de datos, como la que ofrece incolumitas.

Conclusiones

Hoy hemos explorado tanto el DevOps y las habilidades de codificación de la construcción de un raspador web. Para terminar, te haré una simple pregunta. ¿Podemos decir que los proxies ISP no son más que proxies de centros de datos, escondidos detrás de una dirección IP residencial? Creo que esta no es la definición más exacta, pero seguro que describe estos proxies bastante bien.

En Web Scraping API, utilizamos tanto proxies residenciales como proxies de centros de datos. Esto se debe a que algunos objetivos permiten el tráfico no residencial, mientras que otros no. Si quieres saber más sobre cómo puedes usar proxies con nuestra API, consulta nuestra documentación.

Noticias y actualidad

Manténgase al día de las últimas guías y noticias sobre raspado web suscribiéndose a nuestro boletín.

We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Artículos relacionados

miniatura
GuíasCómo raspar datos de productos de Amazon: Guía completa de mejores prácticas y herramientas

Explore las complejidades del scraping de datos de productos de Amazon con nuestra guía en profundidad. Desde las mejores prácticas y herramientas como Amazon Scraper API hasta las consideraciones legales, aprenda a superar los desafíos, eludir los CAPTCHA y extraer información valiosa de forma eficiente.

Suciu Dan
avatar de autor
Suciu Dan
15 minutos de lectura
miniatura
GuíasGuía de inicio rápido de la API de Web Scraping

Empiece con WebScrapingAPI, la solución definitiva para el web scraping. Recopile datos en tiempo real, evite los sistemas anti-bot y disfrute de soporte profesional.

Mihnea-Octavian Manolache
avatar de autor
Mihnea-Octavian Manolache
9 min leer
miniatura
GuíasAprenda a eludir la detección de Cloudflare con el mejor navegador Selenium

Conozca cuál es el mejor navegador para eludir los sistemas de detección de Cloudflare mientras hace web scraping con Selenium.

Mihnea-Octavian Manolache
avatar de autor
Mihnea-Octavian Manolache
9 min leer