Cómo hacer web scraping de datos de Amazon


Artur Hvalei
Technical Support Specialist, Octo Browser
Amazon es una de las plataformas de comercio electrónico más grandes del mundo y una fuente inmensa de datos valiosos. Extraer y utilizar de manera efectiva la información sobre productos, precios y reseñas de clientes es crucial para el desarrollo empresarial. Ya sea que esté promocionando sus propios productos o realizando un seguimiento de la competencia, necesitará herramientas de recopilación de datos para analizar el mercado. Sin embargo, la extracción de datos en Amazon tiene sus peculiaridades que debe tener en cuenta. En este artículo, analizaremos los pasos necesarios que debe seguir para crear un raspador web, y un experto del equipo de Octo ofrecerá un código de ejemplo para la extracción de Amazon.
Contenidos
Manténgase en el anonimato, aproveche la creación de múltiples cuentas y logre sus objetivos con el navegador antidetección de mayor calidad del mercado.
¿Le gustaría probar Octo Browser con un descuento?
Utilice el código promocional OCTOSCRAPER para obtener un 30% de descuento en cualquier suscripción. Esta oferta es válida solo para nuevos usuarios.
¿Qué es el Web Scraping?
El web scraping es el proceso de recopilación automatizada de datos de sitios web. Programas o scripts especiales, llamados scrapers, extraen información de las páginas web y la de forma organizada en un formato de datos estructurados, conveniente para su posterior análisis y uso. Los formatos más comunes para almacenar y procesar datos son CSV, JSON, SQL o Excel.
Hoy en día, el web scraping se utiliza ampliamente en la ciencia de datos, el marketing y el comercio electrónico. Los web scrapers recopilan gran cantidad de información para fines personales y profesionales. Además, los gigantes tecnológicos modernos confían en los métodos de web scraping para monitorear y analizar tendencias.
Herramientas y tecnologías para el Web Scraping
Python y librerías
Python es uno de los lenguajes de programación más populares para el web scraping. Es conocido por su sintaxis simple y clara, lo que lo convierte en una opción ideal tanto para principiantes como para programadores experimentados. Otra ventaja es la amplia gama de librerías disponibles para el web scraping, como Beautiful Soup, Scrapy, Requests y Selenium. Estas librerías le permiten enviar solicitudes HTTP de forma sencilla, procesar documentos HTML e interactuar con páginas web.
APIs
Amazon proporciona APIs para acceder a sus datos, como la Amazon Product Advertising API. Esto le permite solicitar información específica en un formato estructurado sin tener que analizar toda la página HTML.
Servicios en la nube
Plataformas en la nube como AWS Lambda y Google Cloud Functions se pueden utilizar para automatizar y escalar los procesos de web scraping. Proporcionan un alto rendimiento y la capacidad de manejar grandes volúmenes de datos.
Herramientas especializadas
También existen herramientas adicionales para la extracción de datos web, como navegadores multicuentas y proxies. Su función es falsear la huella digital para eludir las restricciones de seguridad de los sitios web. Estas herramientas aceleran la recopilación de datos.
Aplicaciones del Web Scraping en Amazon
Análisis de mercado y competencia
El web scraping le permite recopilar datos sobre los productos y precios de sus competidores, analizar su gama de productos e identificar tendencias. Esto ayuda a las empresas a adaptar sus estrategias y seguir siendo competitivas.
Monitoreo de precios
Recopilar datos sobre precios de productos similares ayuda a las empresas a fijar precios competitivos y responder con rapidez a los cambios del mercado. Esto es especialmente importante en el contexto de precios dinámicos y promociones.
Recopilación de reseñas y calificaciones
Las reseñas y calificaciones son una fuente importante de información sobre cómo perciben los consumidores los productos. El análisis de estos datos ayuda a identificar las fortalezas y debilidades de los productos, así como a obtener ideas para su mejora.
Investigación de la gama de productos
Mediante el web scraping, se puede analizar la gama de productos en Amazon, identificar categorías populares y, en función de esto, tomar decisiones sobre la ampliación o el cambio de la cartera de productos.
Seguimiento de nuevos productos
El web scraping puede ayudarle a conocer rápidamente la aparición de nuevos productos en la plataforma, lo que puede resultar útil para fabricantes, distribuidores y analistas de mercado.
Navegando por los elementos de la interfaz de Amazon
Antes de comenzar a extraer datos, es importante comprender cómo están estructuradas las páginas web. La mayoría de las páginas web están escritas en HTML y contienen elementos como etiquetas, atributos y clases. Conocer HTML le ayudará a identificar y extraer correctamente los datos necesarios.
En la página de inicio de Amazon, los compradores utilizan la barra de búsqueda para introducir palabras clave relacionadas con el producto deseado. Como resultado, reciben una lista con los nombres de los productos, precios, calificaciones y otros atributos esenciales. Además, los productos se pueden filtrar por varios parámetros como rango de precios, categoría de producto y opiniones de los clientes. Navegar por estos componentes ayuda a los usuarios a encontrar fácilmente los productos que les interesan, comparar alternativas, ver información adicional y realizar compras de forma cómoda en Amazon.

Página de inicio de Amazon con una consulta de búsqueda para Octopus
Para obtener una lista más amplia de resultados, se pueden utilizar los botones de paginación situados en la parte inferior de la página. Cada página suele contener una gran cantidad de resultados, lo que le permite examinar más productos. Los filtros de la parte superior de la página le permiten refinar su búsqueda de acuerdo con sus requisitos.
Para comprender la estructura HTML de Amazon, siga estos pasos:
Diríjase al sitio web.
Busque el producto deseado utilizando la barra de búsqueda o seleccione una categoría de la lista de productos.
Abra las herramientas de desarrollo haciendo clic derecho sobre el producto y seleccionando Inspeccionar en el menú desplegable.
Examine el diseño HTML para identificar las etiquetas y atributos de los datos que desea extraer.

Pasos clave para comenzar el Scraping
El web scraping implica dos pasos principales: encontrar la información necesaria y estructurarla. Después de estudiar la estructura del sitio web, configure los componentes necesarios para automatizar el proceso de scraping.
Para esta tarea de automatización del scraping de datos, utilizaremos Python y sus librerías:
HTTPX es una librería HTTP de Python totalmente asíncrona que también admite la ejecución de solicitudes síncronas. HTTPX proporciona una interfaz HTTP estándar similar a la popular librería requests, pero además admite asincronía, protocolos HTTP/1.1, HTTP/2, HTTP/3 y conexiones SOCKS.
BeautifulSoup: Esta librería está diseñada para un análisis sencillo y rápido de documentos HTML y XML. Proporciona una interfaz simple para navegar, buscar y modificar el árbol del documento, lo que hace que el proceso de scraping sea más intuitivo. Le permite extraer información de una página buscando etiquetas, atributos o texto específico.
Selenium: Para interactuar con páginas web dinámicas.
Pandas: Es una librería potente y confiable para el procesamiento y limpieza de datos. Por ejemplo, después de extraer datos de páginas web, puede utilizar Pandas para gestionar valores faltantes, transformar los datos al formato requerido y eliminar duplicados.
Playwright: Permite una interacción eficiente con páginas web que utilizan JavaScript para actualizaciones de contenido dinámico. Esto lo hace especialmente útil para el scraping de sitios como Amazon, donde muchos elementos se cargan de forma asíncrona.
Scrapy: Para tareas de scraping web más complejas.
Una vez que haya preparado Python, abra la terminal o shell y cree un nuevo directorio de proyecto con los siguientes comandos:
mkdir scraping-amazon-python cd scraping-amazon-python
mkdir scraping-amazon-python cd scraping-amazon-python
Para instalar las librerías, abra el terminal o shell y ejecute los siguientes comandos:
pip install httpx pip3 install pandas pip3 install playwright playwright install
pip install httpx pip3 install pandas pip3 install playwright playwright install
Nota: El último comando (playwright install) es fundamental, ya que garantiza la instalación correcta de los archivos necesarios del navegador.
Asegúrese de que el proceso de instalación finalice sin problemas antes de continuar con el siguiente paso. Si encuentra dificultades al configurar el entorno, puede consultar servicios de IA como ChatGPT, Mistral AI y otros. Estos servicios pueden ayudar a solucionar errores y proporcionar instrucciones paso a paso para resolverlos.
Uso de Python y librerías para Web Scraping
En el directorio de su proyecto, cree un nuevo script de Python llamado amazon_scraper.py y añada el siguiente código:
import httpx from playwright.async_api import async_playwright import asyncio import pandas as pd # Profile's uuid from Octo PROFILE_UUID = "UUID_SHOULD_BE_HERE" # searching request SEARCH_REQUEST = "fashion" async def main(): async with async_playwright() as p: async with httpx.AsyncClient() as client: response = await client.post( 'http://127.0.0.1:58888/api/profiles/start', json={ 'uuid': PROFILE_UUID, 'headless': False, 'debug_port': True } ) if not response.is_success: print(f'Start response is not successful: {response.json()}') return start_response = response.json() ws_endpoint = start_response.get('ws_endpoint') browser = await p.chromium.connect_over_cdp(ws_endpoint) page = browser.contexts[0].pages[0] # Opening Amazon await page.goto(f'https://www.amazon.com/s?k={SEARCH_REQUEST}') # Extract information results = [] listings = await page.query_selector_all('div.a-section.a-spacing-small') for listing in listings: result = {} # Product name name_element = await listing.query_selector('h2.a-size-mini > a > span') result['product_name'] = await name_element.inner_text() if name_element else 'N/A' # Rating rating_element = await listing.query_selector('span[aria-label*="out of 5 stars"] > span.a-size-base') result['rating'] = (await rating_element.inner_text())[0:3] if rating_element else 'N/A' # Number of reviews reviews_element = await listing.query_selector('span[aria-label*="stars"] + span > a > span') result['number_of_reviews'] = await reviews_element.inner_text() if reviews_element else 'N/A' # Price price_element = await listing.query_selector('span.a-price > span.a-offscreen') result['price'] = await price_element.inner_text() if price_element else 'N/A' if(result['product_name']=='N/A' and result['rating']=='N/A' and result['number_of_reviews']=='N/A' and result['price']=='N/A'): pass else: results.append(result) # Close browser await browser.close() return results # Run the scraper and save results to a CSV file results = asyncio.run(main()) df = pd.DataFrame(results) df.to_csv('amazon_products_listings.csv', index=False)
import httpx from playwright.async_api import async_playwright import asyncio import pandas as pd # Profile's uuid from Octo PROFILE_UUID = "UUID_SHOULD_BE_HERE" # searching request SEARCH_REQUEST = "fashion" async def main(): async with async_playwright() as p: async with httpx.AsyncClient() as client: response = await client.post( 'http://127.0.0.1:58888/api/profiles/start', json={ 'uuid': PROFILE_UUID, 'headless': False, 'debug_port': True } ) if not response.is_success: print(f'Start response is not successful: {response.json()}') return start_response = response.json() ws_endpoint = start_response.get('ws_endpoint') browser = await p.chromium.connect_over_cdp(ws_endpoint) page = browser.contexts[0].pages[0] # Opening Amazon await page.goto(f'https://www.amazon.com/s?k={SEARCH_REQUEST}') # Extract information results = [] listings = await page.query_selector_all('div.a-section.a-spacing-small') for listing in listings: result = {} # Product name name_element = await listing.query_selector('h2.a-size-mini > a > span') result['product_name'] = await name_element.inner_text() if name_element else 'N/A' # Rating rating_element = await listing.query_selector('span[aria-label*="out of 5 stars"] > span.a-size-base') result['rating'] = (await rating_element.inner_text())[0:3] if rating_element else 'N/A' # Number of reviews reviews_element = await listing.query_selector('span[aria-label*="stars"] + span > a > span') result['number_of_reviews'] = await reviews_element.inner_text() if reviews_element else 'N/A' # Price price_element = await listing.query_selector('span.a-price > span.a-offscreen') result['price'] = await price_element.inner_text() if price_element else 'N/A' if(result['product_name']=='N/A' and result['rating']=='N/A' and result['number_of_reviews']=='N/A' and result['price']=='N/A'): pass else: results.append(result) # Close browser await browser.close() return results # Run the scraper and save results to a CSV file results = asyncio.run(main()) df = pd.DataFrame(results) df.to_csv('amazon_products_listings.csv', index=False)
En este código, utilizamos las capacidades asíncronas de Python con la librería Playwright para extraer listados de productos de una página específica de Amazon. Iniciamos un perfil de Octo Browser y luego nos conectamos a él a través de la librería Playwright. El script abre una URL con una consulta de búsqueda específica, que se puede editar en la parte superior del script en la variable SEARCH_REQUEST.
Al iniciar el navegador e ir a la URL de destino de Amazon, se extraerá la información del producto: nombre, calificación, número de opiniones y precio. Después de iterar por cada lista de la página, puede filtrar las listas que no tengan datos, que el script marcará como "N/A". Los resultados de la búsqueda se guardarán en un DataFrame de Pandas y luego se exportarán a un archivo CSV llamado amazon_products_listings.csv.

¿Qué más se necesita para un Web Scraping eficaz?
Hacer web scraping en Amazon sin proxies y sin herramientas de scraping especializadas conlleva numerosos desafíos. Al igual que muchas otras plataformas populares, Amazon tiene límites en la frecuencia de las solicitudes, lo que significa que puede bloquear su dirección IP si supera el límite establecido. Además, Amazon utiliza algoritmos de detección de boots que identifican su huella digital cuando accede a las páginas del sitio. En vista de esto, se recomienda seguir las mejores prácticas comúnmente utilizadas para evitar la detección y el posible bloqueo por parte de Amazon. Estos son algunos de los consejos y trucos más útiles:
Simular el comportamiento natural
Amazon puede bloquear o suspender temporalmente la actividad que considere robótica o sospechosa. Es fundamental que su scraper actúe de la forma más humana posible.
Para desarrollar un patrón de rastreo exitoso, piense en cómo se comportaría un usuario promedio al navegar por una página y añada los clics, desplazamientos y movimientos del mouse correspondientes. Para evitar bloqueos, introduzca retrasos o intervalos aleatorios entre solicitudes utilizando funciones como asyncio.sleep(random.uniform(1, 5)). Esto hará que su patrón parezca menos automatizado.
Una huella digital realista
Utilice un navegador antidetección para suplantar su huella digital por la de un dispositivo real. Plataformas como Amazon recopilan diversos parámetros de la huella digital para identificar bots. Para evitar la detección, asegúrese de que los parámetros de su huella digital y sus combinaciones sean siempre verosímiles.
Además, para reducir el riesgo de detección, debe rotar las direcciones IP. Los proxies de alta calidad desempeñan un papel fundamental cuando se trabaja con un navegador antidetección. Elija únicamente proveedores fiables con los mejores precios. Los proxies deben seleccionarse según la estrategia de scraping y teniendo en cuenta sus ubicaciones geográficas, ya que Amazon ofrece diferentes contenidos para distintas regiones. Asegúrese de que sus proxies tengan una puntuación baja de spam/abuso/fraude. También debe considerar la velocidad de los proxies. Por ejemplo, los proxies residenciales pueden tener una latencia alta, lo que afectará a la velocidad del scraping.
Servicios de resolución de CAPTCHA
Además de un navegador antidetección, proxies de alta calidad y un script bien diseñado que simule el comportamiento humano, un solucionador automático de CAPTCHAs también puede resultar de gran utilidad. Para ello, puede utilizar soluciones de código abierto, servicios de resolución manual como 2captcha y anti-captcha, o solucionadores automatizados como Capmonster.
¿Por qué utilizar navegadores antidetección para el Web Scraping?
Muchos sitios web, plataformas y servicios utilizan información sobre el dispositivo, navegador y conexión del usuario para identificarlo. Estos conjuntos de datos se conocen como huellas digitales. Basándose en la información de la huella digital, los sistemas de seguridad de los sitios web determinan si un usuario es sospechoso.
El conjunto específico de parámetros analizados puede variar en función del sistema de seguridad del sitio web. Para conectarse y mostrar el contenido correctamente, un navegador proporciona más de 50 parámetros diferentes relacionados con su dispositivo, cada uno de los cuales puede formar parte de la huella digital.
Además, se puede solicitar al navegador que cree una imagen sencilla en 2D o 3D y, en función del rendimiento del dispositivo al realizar esta tarea y las diferencias en el renderizado, se puede generar un hash. Este hash distinguirá a este dispositivo de otros visitantes del sitio. Así es como funciona la identificación de hardware mediante Canvas y WebGL.
Pequeños cambios en algunas características, cuya información transmite el navegador a los sistemas de seguridad del sitio web, no impedirán la identificación de un usuario que ya resulta familiar. Puede cambiar de navegador, de zona horaria o de resolución de pantalla, pero incluso si hace todo esto a la vez, la probabilidad de identificación seguirá siendo alta.
La huella digital, junto con otras tecnologías anti-scraping como el límite de solicitudes, la geolocalización, el WAF de seguridad, los retos y los CAPTCHAs, existen para proteger a los sitios web de las interacciones automatizadas. Un navegador antidetección con un sistema de suplantación de huella digital de alta calidad le ayudará a eludir los sistemas de seguridad de los sitios web. Como resultado, aumentará la eficacia del web scraping, ya que la recopilación de datos será más rápida y confiable.
¿Cómo funcionan los navegadores antidetección?
El papel de los navegadores antidetección a la hora de eludir los sistemas de seguridad de los sitios web consiste en falsificar la huella digital. Utilizando un navegador antidetección, puede crear múltiples perfiles de navegador, que son copias virtuales del navegador aisladas entre sí y que disponen de su propio conjunto de características y configuraciones: cookies, historial de navegación, extensiones, proxies y parámetros de huella digital. Cada perfil de navegador antidetección aparece ante los sistemas de seguridad de los sitios web como un usuario independiente.

Cómo realizar raspado web con un navegador antidetección
Los navegadores antidetección suelen ofrecer capacidades de automatización a través del protocolo Chrome DevTools. Le permite automatizar las acciones de scraping necesarias mediante interfaces de software. Para un trabajo cómodo, puede utilizar librerías de código abierto como Puppeteer, Playwright, Selenium, etc.
En Octo Browser, toda la documentación necesaria para empezar está disponible aquí, y las instrucciones detalladas de la API se pueden encontrar aquí.
¿Reduce un navegador antidetección los costos del Scraping?
Los navegadores antidetección pueden tanto aumentar como disminuir los costos de scraping, según el recurso y las condiciones de trabajo.
Los costos pueden reducirse minimizando el riesgo de bloqueos y automatizando las tareas manuales. Los navegadores antidetección ofrecen un administrador de perfiles y funciones de autosincronización de datos de perfiles para ello.
Los costos pueden aumentar principalmente por la adquisición de licencias para el número necesario de perfiles.
A igualdad de condiciones, a largo plazo la utilización de un navegador antidetección facilita el ahorro de presupuesto y reduce los costos del scraping.
¿Vale la pena el esfuerzo de automatizar el Web Scraping?
El web scraping es una potente herramienta para la recopilación y el análisis automático de datos. Las empresas la utilizan para recopilar la información necesaria y tomar decisiones fundamentadas en el ámbito del comercio electrónico.
Utilice Python para buscar de forma eficaz productos, reseñas, descripciones y precios en Amazon. Escribir el código necesario puede requerir cierto tiempo y esfuerzo, pero los resultados superarán todas las expectativas. Para evitar llamar la atención de los sistemas de seguridad, simule el comportamiento de un usuario natural, utilice direcciones IP de terceros y cambie regularmente la huella digital. El uso de herramientas especializadas como navegadores antidetección y servidores proxy le permitirán rotar las huellas de los navegadores y las direcciones IP para superar las restricciones y aumentar la velocidad de scraping.
Preguntas frecuentes
¿Qué tipo de datos se pueden extraer con el web scraping?
El web scraping puede extraer texto, imágenes, tablas, metadatos y más.
¿Se puede detectar el scraping?
Sí, el análisis de datos puede ser detectado por sistemas antibots, que pueden comprobar su dirección IP, si coinciden los parámetros de su huella digital y sus patrones de comportamiento. Si la comprobación falla, se bloqueará el acceso a las páginas del sitio web desde su dirección IP y su dispositivo.
¿Cómo evitar bloqueos durante el web scraping?
Utilice servidores proxy, simule acciones de usuarios reales y añada retrasos entre las solicitudes.
¿Qué aspectos legales del web scraping deben tenerse en cuenta?
Los aspectos legales del web scraping se rigen por las leyes de protección de datos y los derechos de propiedad intelectual. Extraer datos públicos de sitios web no se considera ilegal si sus acciones no infringen sus condiciones de servicio (ToS). Siga las reglas de la plataforma y considere siempre los aspectos legales del web scraping.
¿Permite Amazon el scraping?
Extraer datos de acceso público en Amazon no se considera ilegal siempre que sus acciones no infrinjan sus condiciones de servicio (ToS).
¿Cuáles son los principales errores que pueden producirse durante el web scraping y cómo evitarlos?
Los errores típicos incluyen problemas con el análisis de HTML, el seguimiento de cambios en la estructura del sitio web y la superación de los límites del nivel de solicitudes. Para evitarlos, revise y actualice su código de forma periódica.
¿Cómo minimizar la aparición de CAPTCHAs al extraer datos de Amazon?
Utilice servidores proxy confiables y rote sus direcciones IP. Reduzca la velocidad aplicando intervalos aleatorios entre las solicitudes y acciones. Asegúrese de que los parámetros de su huella digital coincidan con los de los dispositivos reales y no levanten sospechas en los sistemas antibots.
Manténgase en el anonimato, aproveche la creación de múltiples cuentas y logre sus objetivos con el navegador antidetección de mayor calidad del mercado.
¿Le gustaría probar Octo Browser con un descuento?
Utilice el código promocional OCTOSCRAPER para obtener un 30% de descuento en cualquier suscripción. Esta oferta es válida solo para nuevos usuarios.
¿Qué es el Web Scraping?
El web scraping es el proceso de recopilación automatizada de datos de sitios web. Programas o scripts especiales, llamados scrapers, extraen información de las páginas web y la de forma organizada en un formato de datos estructurados, conveniente para su posterior análisis y uso. Los formatos más comunes para almacenar y procesar datos son CSV, JSON, SQL o Excel.
Hoy en día, el web scraping se utiliza ampliamente en la ciencia de datos, el marketing y el comercio electrónico. Los web scrapers recopilan gran cantidad de información para fines personales y profesionales. Además, los gigantes tecnológicos modernos confían en los métodos de web scraping para monitorear y analizar tendencias.
Herramientas y tecnologías para el Web Scraping
Python y librerías
Python es uno de los lenguajes de programación más populares para el web scraping. Es conocido por su sintaxis simple y clara, lo que lo convierte en una opción ideal tanto para principiantes como para programadores experimentados. Otra ventaja es la amplia gama de librerías disponibles para el web scraping, como Beautiful Soup, Scrapy, Requests y Selenium. Estas librerías le permiten enviar solicitudes HTTP de forma sencilla, procesar documentos HTML e interactuar con páginas web.
APIs
Amazon proporciona APIs para acceder a sus datos, como la Amazon Product Advertising API. Esto le permite solicitar información específica en un formato estructurado sin tener que analizar toda la página HTML.
Servicios en la nube
Plataformas en la nube como AWS Lambda y Google Cloud Functions se pueden utilizar para automatizar y escalar los procesos de web scraping. Proporcionan un alto rendimiento y la capacidad de manejar grandes volúmenes de datos.
Herramientas especializadas
También existen herramientas adicionales para la extracción de datos web, como navegadores multicuentas y proxies. Su función es falsear la huella digital para eludir las restricciones de seguridad de los sitios web. Estas herramientas aceleran la recopilación de datos.
Aplicaciones del Web Scraping en Amazon
Análisis de mercado y competencia
El web scraping le permite recopilar datos sobre los productos y precios de sus competidores, analizar su gama de productos e identificar tendencias. Esto ayuda a las empresas a adaptar sus estrategias y seguir siendo competitivas.
Monitoreo de precios
Recopilar datos sobre precios de productos similares ayuda a las empresas a fijar precios competitivos y responder con rapidez a los cambios del mercado. Esto es especialmente importante en el contexto de precios dinámicos y promociones.
Recopilación de reseñas y calificaciones
Las reseñas y calificaciones son una fuente importante de información sobre cómo perciben los consumidores los productos. El análisis de estos datos ayuda a identificar las fortalezas y debilidades de los productos, así como a obtener ideas para su mejora.
Investigación de la gama de productos
Mediante el web scraping, se puede analizar la gama de productos en Amazon, identificar categorías populares y, en función de esto, tomar decisiones sobre la ampliación o el cambio de la cartera de productos.
Seguimiento de nuevos productos
El web scraping puede ayudarle a conocer rápidamente la aparición de nuevos productos en la plataforma, lo que puede resultar útil para fabricantes, distribuidores y analistas de mercado.
Navegando por los elementos de la interfaz de Amazon
Antes de comenzar a extraer datos, es importante comprender cómo están estructuradas las páginas web. La mayoría de las páginas web están escritas en HTML y contienen elementos como etiquetas, atributos y clases. Conocer HTML le ayudará a identificar y extraer correctamente los datos necesarios.
En la página de inicio de Amazon, los compradores utilizan la barra de búsqueda para introducir palabras clave relacionadas con el producto deseado. Como resultado, reciben una lista con los nombres de los productos, precios, calificaciones y otros atributos esenciales. Además, los productos se pueden filtrar por varios parámetros como rango de precios, categoría de producto y opiniones de los clientes. Navegar por estos componentes ayuda a los usuarios a encontrar fácilmente los productos que les interesan, comparar alternativas, ver información adicional y realizar compras de forma cómoda en Amazon.

Página de inicio de Amazon con una consulta de búsqueda para Octopus
Para obtener una lista más amplia de resultados, se pueden utilizar los botones de paginación situados en la parte inferior de la página. Cada página suele contener una gran cantidad de resultados, lo que le permite examinar más productos. Los filtros de la parte superior de la página le permiten refinar su búsqueda de acuerdo con sus requisitos.
Para comprender la estructura HTML de Amazon, siga estos pasos:
Diríjase al sitio web.
Busque el producto deseado utilizando la barra de búsqueda o seleccione una categoría de la lista de productos.
Abra las herramientas de desarrollo haciendo clic derecho sobre el producto y seleccionando Inspeccionar en el menú desplegable.
Examine el diseño HTML para identificar las etiquetas y atributos de los datos que desea extraer.

Pasos clave para comenzar el Scraping
El web scraping implica dos pasos principales: encontrar la información necesaria y estructurarla. Después de estudiar la estructura del sitio web, configure los componentes necesarios para automatizar el proceso de scraping.
Para esta tarea de automatización del scraping de datos, utilizaremos Python y sus librerías:
HTTPX es una librería HTTP de Python totalmente asíncrona que también admite la ejecución de solicitudes síncronas. HTTPX proporciona una interfaz HTTP estándar similar a la popular librería requests, pero además admite asincronía, protocolos HTTP/1.1, HTTP/2, HTTP/3 y conexiones SOCKS.
BeautifulSoup: Esta librería está diseñada para un análisis sencillo y rápido de documentos HTML y XML. Proporciona una interfaz simple para navegar, buscar y modificar el árbol del documento, lo que hace que el proceso de scraping sea más intuitivo. Le permite extraer información de una página buscando etiquetas, atributos o texto específico.
Selenium: Para interactuar con páginas web dinámicas.
Pandas: Es una librería potente y confiable para el procesamiento y limpieza de datos. Por ejemplo, después de extraer datos de páginas web, puede utilizar Pandas para gestionar valores faltantes, transformar los datos al formato requerido y eliminar duplicados.
Playwright: Permite una interacción eficiente con páginas web que utilizan JavaScript para actualizaciones de contenido dinámico. Esto lo hace especialmente útil para el scraping de sitios como Amazon, donde muchos elementos se cargan de forma asíncrona.
Scrapy: Para tareas de scraping web más complejas.
Una vez que haya preparado Python, abra la terminal o shell y cree un nuevo directorio de proyecto con los siguientes comandos:
mkdir scraping-amazon-python cd scraping-amazon-python
Para instalar las librerías, abra el terminal o shell y ejecute los siguientes comandos:
pip install httpx pip3 install pandas pip3 install playwright playwright install
Nota: El último comando (playwright install) es fundamental, ya que garantiza la instalación correcta de los archivos necesarios del navegador.
Asegúrese de que el proceso de instalación finalice sin problemas antes de continuar con el siguiente paso. Si encuentra dificultades al configurar el entorno, puede consultar servicios de IA como ChatGPT, Mistral AI y otros. Estos servicios pueden ayudar a solucionar errores y proporcionar instrucciones paso a paso para resolverlos.
Uso de Python y librerías para Web Scraping
En el directorio de su proyecto, cree un nuevo script de Python llamado amazon_scraper.py y añada el siguiente código:
import httpx from playwright.async_api import async_playwright import asyncio import pandas as pd # Profile's uuid from Octo PROFILE_UUID = "UUID_SHOULD_BE_HERE" # searching request SEARCH_REQUEST = "fashion" async def main(): async with async_playwright() as p: async with httpx.AsyncClient() as client: response = await client.post( 'http://127.0.0.1:58888/api/profiles/start', json={ 'uuid': PROFILE_UUID, 'headless': False, 'debug_port': True } ) if not response.is_success: print(f'Start response is not successful: {response.json()}') return start_response = response.json() ws_endpoint = start_response.get('ws_endpoint') browser = await p.chromium.connect_over_cdp(ws_endpoint) page = browser.contexts[0].pages[0] # Opening Amazon await page.goto(f'https://www.amazon.com/s?k={SEARCH_REQUEST}') # Extract information results = [] listings = await page.query_selector_all('div.a-section.a-spacing-small') for listing in listings: result = {} # Product name name_element = await listing.query_selector('h2.a-size-mini > a > span') result['product_name'] = await name_element.inner_text() if name_element else 'N/A' # Rating rating_element = await listing.query_selector('span[aria-label*="out of 5 stars"] > span.a-size-base') result['rating'] = (await rating_element.inner_text())[0:3] if rating_element else 'N/A' # Number of reviews reviews_element = await listing.query_selector('span[aria-label*="stars"] + span > a > span') result['number_of_reviews'] = await reviews_element.inner_text() if reviews_element else 'N/A' # Price price_element = await listing.query_selector('span.a-price > span.a-offscreen') result['price'] = await price_element.inner_text() if price_element else 'N/A' if(result['product_name']=='N/A' and result['rating']=='N/A' and result['number_of_reviews']=='N/A' and result['price']=='N/A'): pass else: results.append(result) # Close browser await browser.close() return results # Run the scraper and save results to a CSV file results = asyncio.run(main()) df = pd.DataFrame(results) df.to_csv('amazon_products_listings.csv', index=False)
En este código, utilizamos las capacidades asíncronas de Python con la librería Playwright para extraer listados de productos de una página específica de Amazon. Iniciamos un perfil de Octo Browser y luego nos conectamos a él a través de la librería Playwright. El script abre una URL con una consulta de búsqueda específica, que se puede editar en la parte superior del script en la variable SEARCH_REQUEST.
Al iniciar el navegador e ir a la URL de destino de Amazon, se extraerá la información del producto: nombre, calificación, número de opiniones y precio. Después de iterar por cada lista de la página, puede filtrar las listas que no tengan datos, que el script marcará como "N/A". Los resultados de la búsqueda se guardarán en un DataFrame de Pandas y luego se exportarán a un archivo CSV llamado amazon_products_listings.csv.

¿Qué más se necesita para un Web Scraping eficaz?
Hacer web scraping en Amazon sin proxies y sin herramientas de scraping especializadas conlleva numerosos desafíos. Al igual que muchas otras plataformas populares, Amazon tiene límites en la frecuencia de las solicitudes, lo que significa que puede bloquear su dirección IP si supera el límite establecido. Además, Amazon utiliza algoritmos de detección de boots que identifican su huella digital cuando accede a las páginas del sitio. En vista de esto, se recomienda seguir las mejores prácticas comúnmente utilizadas para evitar la detección y el posible bloqueo por parte de Amazon. Estos son algunos de los consejos y trucos más útiles:
Simular el comportamiento natural
Amazon puede bloquear o suspender temporalmente la actividad que considere robótica o sospechosa. Es fundamental que su scraper actúe de la forma más humana posible.
Para desarrollar un patrón de rastreo exitoso, piense en cómo se comportaría un usuario promedio al navegar por una página y añada los clics, desplazamientos y movimientos del mouse correspondientes. Para evitar bloqueos, introduzca retrasos o intervalos aleatorios entre solicitudes utilizando funciones como asyncio.sleep(random.uniform(1, 5)). Esto hará que su patrón parezca menos automatizado.
Una huella digital realista
Utilice un navegador antidetección para suplantar su huella digital por la de un dispositivo real. Plataformas como Amazon recopilan diversos parámetros de la huella digital para identificar bots. Para evitar la detección, asegúrese de que los parámetros de su huella digital y sus combinaciones sean siempre verosímiles.
Además, para reducir el riesgo de detección, debe rotar las direcciones IP. Los proxies de alta calidad desempeñan un papel fundamental cuando se trabaja con un navegador antidetección. Elija únicamente proveedores fiables con los mejores precios. Los proxies deben seleccionarse según la estrategia de scraping y teniendo en cuenta sus ubicaciones geográficas, ya que Amazon ofrece diferentes contenidos para distintas regiones. Asegúrese de que sus proxies tengan una puntuación baja de spam/abuso/fraude. También debe considerar la velocidad de los proxies. Por ejemplo, los proxies residenciales pueden tener una latencia alta, lo que afectará a la velocidad del scraping.
Servicios de resolución de CAPTCHA
Además de un navegador antidetección, proxies de alta calidad y un script bien diseñado que simule el comportamiento humano, un solucionador automático de CAPTCHAs también puede resultar de gran utilidad. Para ello, puede utilizar soluciones de código abierto, servicios de resolución manual como 2captcha y anti-captcha, o solucionadores automatizados como Capmonster.
¿Por qué utilizar navegadores antidetección para el Web Scraping?
Muchos sitios web, plataformas y servicios utilizan información sobre el dispositivo, navegador y conexión del usuario para identificarlo. Estos conjuntos de datos se conocen como huellas digitales. Basándose en la información de la huella digital, los sistemas de seguridad de los sitios web determinan si un usuario es sospechoso.
El conjunto específico de parámetros analizados puede variar en función del sistema de seguridad del sitio web. Para conectarse y mostrar el contenido correctamente, un navegador proporciona más de 50 parámetros diferentes relacionados con su dispositivo, cada uno de los cuales puede formar parte de la huella digital.
Además, se puede solicitar al navegador que cree una imagen sencilla en 2D o 3D y, en función del rendimiento del dispositivo al realizar esta tarea y las diferencias en el renderizado, se puede generar un hash. Este hash distinguirá a este dispositivo de otros visitantes del sitio. Así es como funciona la identificación de hardware mediante Canvas y WebGL.
Pequeños cambios en algunas características, cuya información transmite el navegador a los sistemas de seguridad del sitio web, no impedirán la identificación de un usuario que ya resulta familiar. Puede cambiar de navegador, de zona horaria o de resolución de pantalla, pero incluso si hace todo esto a la vez, la probabilidad de identificación seguirá siendo alta.
La huella digital, junto con otras tecnologías anti-scraping como el límite de solicitudes, la geolocalización, el WAF de seguridad, los retos y los CAPTCHAs, existen para proteger a los sitios web de las interacciones automatizadas. Un navegador antidetección con un sistema de suplantación de huella digital de alta calidad le ayudará a eludir los sistemas de seguridad de los sitios web. Como resultado, aumentará la eficacia del web scraping, ya que la recopilación de datos será más rápida y confiable.
¿Cómo funcionan los navegadores antidetección?
El papel de los navegadores antidetección a la hora de eludir los sistemas de seguridad de los sitios web consiste en falsificar la huella digital. Utilizando un navegador antidetección, puede crear múltiples perfiles de navegador, que son copias virtuales del navegador aisladas entre sí y que disponen de su propio conjunto de características y configuraciones: cookies, historial de navegación, extensiones, proxies y parámetros de huella digital. Cada perfil de navegador antidetección aparece ante los sistemas de seguridad de los sitios web como un usuario independiente.

Cómo realizar raspado web con un navegador antidetección
Los navegadores antidetección suelen ofrecer capacidades de automatización a través del protocolo Chrome DevTools. Le permite automatizar las acciones de scraping necesarias mediante interfaces de software. Para un trabajo cómodo, puede utilizar librerías de código abierto como Puppeteer, Playwright, Selenium, etc.
En Octo Browser, toda la documentación necesaria para empezar está disponible aquí, y las instrucciones detalladas de la API se pueden encontrar aquí.
¿Reduce un navegador antidetección los costos del Scraping?
Los navegadores antidetección pueden tanto aumentar como disminuir los costos de scraping, según el recurso y las condiciones de trabajo.
Los costos pueden reducirse minimizando el riesgo de bloqueos y automatizando las tareas manuales. Los navegadores antidetección ofrecen un administrador de perfiles y funciones de autosincronización de datos de perfiles para ello.
Los costos pueden aumentar principalmente por la adquisición de licencias para el número necesario de perfiles.
A igualdad de condiciones, a largo plazo la utilización de un navegador antidetección facilita el ahorro de presupuesto y reduce los costos del scraping.
¿Vale la pena el esfuerzo de automatizar el Web Scraping?
El web scraping es una potente herramienta para la recopilación y el análisis automático de datos. Las empresas la utilizan para recopilar la información necesaria y tomar decisiones fundamentadas en el ámbito del comercio electrónico.
Utilice Python para buscar de forma eficaz productos, reseñas, descripciones y precios en Amazon. Escribir el código necesario puede requerir cierto tiempo y esfuerzo, pero los resultados superarán todas las expectativas. Para evitar llamar la atención de los sistemas de seguridad, simule el comportamiento de un usuario natural, utilice direcciones IP de terceros y cambie regularmente la huella digital. El uso de herramientas especializadas como navegadores antidetección y servidores proxy le permitirán rotar las huellas de los navegadores y las direcciones IP para superar las restricciones y aumentar la velocidad de scraping.
Preguntas frecuentes
¿Qué tipo de datos se pueden extraer con el web scraping?
El web scraping puede extraer texto, imágenes, tablas, metadatos y más.
¿Se puede detectar el scraping?
Sí, el análisis de datos puede ser detectado por sistemas antibots, que pueden comprobar su dirección IP, si coinciden los parámetros de su huella digital y sus patrones de comportamiento. Si la comprobación falla, se bloqueará el acceso a las páginas del sitio web desde su dirección IP y su dispositivo.
¿Cómo evitar bloqueos durante el web scraping?
Utilice servidores proxy, simule acciones de usuarios reales y añada retrasos entre las solicitudes.
¿Qué aspectos legales del web scraping deben tenerse en cuenta?
Los aspectos legales del web scraping se rigen por las leyes de protección de datos y los derechos de propiedad intelectual. Extraer datos públicos de sitios web no se considera ilegal si sus acciones no infringen sus condiciones de servicio (ToS). Siga las reglas de la plataforma y considere siempre los aspectos legales del web scraping.
¿Permite Amazon el scraping?
Extraer datos de acceso público en Amazon no se considera ilegal siempre que sus acciones no infrinjan sus condiciones de servicio (ToS).
¿Cuáles son los principales errores que pueden producirse durante el web scraping y cómo evitarlos?
Los errores típicos incluyen problemas con el análisis de HTML, el seguimiento de cambios en la estructura del sitio web y la superación de los límites del nivel de solicitudes. Para evitarlos, revise y actualice su código de forma periódica.
¿Cómo minimizar la aparición de CAPTCHAs al extraer datos de Amazon?
Utilice servidores proxy confiables y rote sus direcciones IP. Reduzca la velocidad aplicando intervalos aleatorios entre las solicitudes y acciones. Asegúrese de que los parámetros de su huella digital coincidan con los de los dispositivos reales y no levanten sospechas en los sistemas antibots.
Mantente al día de las últimas noticias sobre Octo Browser
Al hacer clic en el botón, aceptas nuestra Política de privacidad.
Mantente al día de las últimas noticias sobre Octo Browser
Al hacer clic en el botón, aceptas nuestra Política de privacidad.
Mantente al día de las últimas noticias sobre Octo Browser
Al hacer clic en el botón, aceptas nuestra Política de privacidad.

Únete a Octo Browser ahora
O contacta al servicio al cliente en cualquier momento si tienes alguna pregunta.

Únete a Octo Browser ahora
O contacta al servicio al cliente en cualquier momento si tienes alguna pregunta.
Únete a Octo Browser ahora
O contacta al servicio al cliente en cualquier momento si tienes alguna pregunta.