es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo determinar qué solicitud está cargando de forma lenta una sección particular de un sitio web?

Lo que estoy haciendo:

Raspando productos de Amazon como https://www.amazon.com.br/dp/B000F5NNKE.

Problema:

El scraper comienza bien y las páginas se cargan completamente por un tiempo. Sin embargo, eventualmente Amazon se da cuenta de que estoy raspando y, en vez de bloquearme, el código fuente que devuelve como respuesta ya no contiene las dos secciones que se muestran en la imagen a continuación, es decir, “Descrição do produto” (en negro) y “Informações sobre o produto” (abajo, en naranja).

"Descrição do produto" y "Informações sobre o produto" están faltando

Lo que necesito:

Cambiar agentes y proxies solo funciona por un tiempo, así que idealmente lo que quería era enviar una solicitud a una URL específica para poder solicitar estas secciones directamente en lugar de tratar de hacer que Amazon las incluya en el código fuente.

Lo que he intentado:

He revisado la pestaña XHR en la pestaña de la Red de las herramientas para desarrolladores, pero las solicitudes eran incomprensibles para mí.

PREGUNTA

¿Hay alguna otra manera de averiguar exactamente qué solicitud carga estas secciones para no tener que usar algo más drástico como el renderizado de Javascript?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para obtener información de productos faltante en Amazon

    Como un experto en TI especializado en Python, web scraping utilizando python-requests y python-requests-html, estás intentando obtener información de productos de Amazon como https://www.amazon.com.br/dp/B000F5NNKE. Sin embargo, después de un tiempo, cuando Amazon se da cuenta de que estás raspando su sitio web, en lugar de bloquearte, comienzan a excluir información crucial, como “Descrição do produto” e “Informações sobre o produto”, del código fuente devuelto como respuesta. Como cambiar los agentes y proxies solo funciona por un tiempo, estás buscando una manera de enviar una solicitud directamente a las secciones faltantes. Has intentado ver la pestaña XHR en la pestaña Network de las herramientas para desarrolladores, pero las solicitudes eran incomprensibles para ti. La siguiente es una solución alternativa que podrías intentar:

    • Usa el paquete selenium para automatizar la interacción del navegador web desde Python.
    • Instala el webdriver para tu navegador preferido (Chrome, Firefox, etc.).
    • Una vez que hayas instalado el webdriver, puedes escribir un script con selenium para interactuar con el navegador web, cargar una página específica y recuperar la información solicitada.
    • Con selenium, también puedes simular un comportamiento de navegación similar al de un humano, como desplazarte hacia abajo en la página, para cargar por completo cualquier contenido dinámico posible.
    • Por último, puedes usar BeautifulSoup para analizar el código HTML de las secciones y extraer la información deseada.

    Selenium será más periférico a lo que has estado trabajando hasta ahora, pero es una solución efectiva para interactuar con contenido dinámico que es difícil de rasp ar con Python-Requests-HTML.

Comments are closed.