Sofisticado web scraping con datos brillantes
Es fácil realizar consultas de datos estructurados proporcionados por API REST o GraphQL. Eliminar datos arbitrarios de cualquier página web es más laborioso, pero abre posibilidades adicionales. Bright Data brinda servicios para que el desguace sea fácil, confiable y práctico.
Creamos este artículo en sociedad Información brillante. Gracias por apoyar a los socios que hacen posible SitePoint.
El raspado de datos es el superpoder de un desarrollador web que lo coloca por encima de las capacidades de los usuarios web comunes. ¿Quiere encontrar el vuelo más barato, la habitación de hotel con más descuento o la última consola de juegos? Los usuarios acérrimos tienen que buscar manualmente de forma regular y necesitan una gran oportunidad para conseguir un trato. Pero el web scraping te permite automatizar el proceso. Un bot puede eliminar datos cada pocos segundos, alertarlo cuando se superan los umbrales e incluso comprar productos automáticamente en su nombre.
Lo siguiente para un breve ejemplo. bash
se utiliza el comando El pliegue Para obtener el contenido HTML devuelto por la página de índice del blog de SitePoint. pasar el resultado Uva para devolver enlaces a los últimos artículos:
curl 'https://www.sitepoint.com/blog/' | \
grep -o ']*>\s*
El software puede ejecutar un proceso similar todos los días, comparar resultados con resultados anteriores y notificarle cuando SitePoint publique un nuevo artículo.
Intente usar todos sus sitios favoritos antes de comenzar a eliminar contenido curl
Con una búsqueda en Google o un enlace de Amazon. Obtendrá un servicio HTTP 503 no disponible con una breve respuesta de error HTML. Los sitios a menudo colocan barreras para evitar el raspado, como:
- verificar el agente de usuario, las cookies y otros encabezados HTTP para asegurarse de que la solicitud provenga del navegador del usuario y no de un bot
- Creación de contenido utilizando solicitudes Ajax con tecnología de JavaScript, por lo que hay poca información en el HTML
- requiere que el usuario interactúe con la página antes de mostrar el contenido, como desplazarse hacia abajo
- como la mayoría de los sitios de redes sociales, requiere el inicio de sesión del usuario antes de mostrar el contenido
Puede resolver la mayoría de los problemas usando un navegador sin cabeza — abrir una pestaña, cargar una página, desplazarse hacia abajo, presionar un botón, etc. una configuración de navegador real que administra usando un controlador para simular la interacción del usuario, como
Su código se volverá más complejo, pero ese no es el final de sus problemas. Algunos sitios:
- disponible solo en ciertas conexiones, como la red móvil
- restringir el contenido a ciertos países al verificar la dirección IP del solicitante (p. bbc.co.uk Disponible para visitantes del Reino Unido, pero recomendará visitantes de otros países bbc.com con menos contenido y anuncios)
- bloquear solicitudes repetidas desde la misma dirección IP
- use CAPTCHA o métodos similares para identificar bots
- utiliza servicios como Llamarada de la nubeesto puede evitar que los bots detectados en un sitio se infiltren en otro
Ahora necesitará servidores proxy para los países y redes apropiados, idealmente con un conjunto de direcciones IP para evitar la detección. Estamos lejos de ser simples curl
combinado con una o dos expresiones regulares.
Afortunadamente, Información brillante proporciona soluciones a problemas técnicos y promete “convertir sitios web en datos estructurados”. Bright Data ofrece opciones confiables de raspado a través de conexiones de red sólidas que puede configurar en minutos.
Conjuntos de datos de datos brillantes sin código
Base de datos de datos brillantes Si necesita información, la forma más fácil de comenzar es:
- Plataformas de comercio electrónico como Walmart y varios sitios de Amazon (
.com
,.de
,.es
,.fr
,.it
,.in
o.co.uk
) - Plataformas de redes sociales que incluyen Instagram, LinkedIn, Twitter y TikTok
- Sitios comerciales que incluyen LinkedIn, Crunchbase, Stack Overflow, Indeed y Glassdoor
- Directorios como Google Maps Business
- Otros sitios como IMDB
Los usos típicos del conjunto de datos son:
- monitorear los precios de los competidores
- seguimiento de sus productos más vendidos
- oportunidades de inversion
- inteligencia competitiva
- análisis de opiniones de clientes
- protege tus marcas
En la mayoría de los casos, querrá importar datos a una base de datos oa una hoja de cálculo para realizar su propio análisis.
Los conjuntos de datos se califican según su complejidad, análisis y número de registros. Un sitio como Amazon.com ofrece millones de productos, por lo que obtener todos los registros es costoso. Sin embargo, no es difícil reclamar todo. Puede filtrar conjuntos de datos usando subconjuntos específicos para devolver registros de interés. SitePoint busca títulos de libros usando la siguiente cadena de ejemplo Novice to Ninja
. Devuelve menos registros, por lo que está disponible por unos pocos centavos.
Puede recibir los datos recuperados por correo electrónico, webhook, Amazon S3, Google Cloud Storage, Microsoft Azure Storage y SFTP, ya sea como entrega única o programada.
Conjuntos de datos personalizados y Web Scraper IDE
Puede eliminar datos personales de cualquier sitio web mediante un coleccionista — Un programa de JavaScript que controla un navegador web en la red de Bright Data.
La siguiente demostración muestra cómo buscar en Twitter #sitepoint
hashtag y devolver una lista de tweets y metadatos en formato JSON. Este recopilador comenzará a usar la llamada API, por lo que debe visitar el suyo primero. Configuraciones de la cuenta y cree un nuevo token de API.
Bright Data le enviará un correo electrónico con un número de confirmación. Introdúzcalo en el panel y verá su token (un GUID hexadecimal de 36 caracteres). Cópialo y asegúrate de guardarlo en un lugar seguro: no lo volverás a ver y, si lo pierdes, tendrás que crear una nueva insignia.
visita el Panel colector dentro plataforma de recogida de datos abra el menú y seleccione una plantilla. Estamos usando Twitter en este ejemplo, pero puedes elegir lo que quieras o crear una colección personalizada desde cero:
Esto lleva a Rascador web IDE Puede ver y editar el código JavaScript del recopilador. Bright Data proporciona comandos API como:
country(code)
para usar el dispositivo en un país específicoemulate_device(device)
para emular un teléfono o tableta específicosnavigate(url)
para abrir una URL en un navegador sin cabezawait_network_idle()
esperando que se completen las solicitudes pendienteswait_page_idle()
esperando hasta que se realicen más solicitudes DOMclick(selector)
hacer clic en un elemento específicotype(selector, text)
para introducir texto en el campo de entradascroll_to(selector)
desliza el dedo hacia un elemento para que aparezcasolve_captcha()
para resolver cualquier CAPTCHA mostradoparse()
para analizar los datos de la páginacollect()
para agregar datos a la base de datos
Si ha programado un navegador sin cabeza o ha escrito pruebas de integración, el panel de ayuda está disponible, aunque el código le resultará familiar.
En este caso, el código de la plantilla de Twitter no necesita más edición.
Desplácese hacia abajo y haga clic en él Introducción panel para eliminar hashtags de muestra y configurar los suyos propios (p. ej. #SitePoint
). Haz clic ahora Avance botón para ver la ejecución del código en el navegador. Twitter tardará uno o dos minutos en cargarse por completo y desplazarse hacia abajo en la página para mostrar una selección de resultados.
los Salida el panel muestra los resultados capturados y formateados una vez finalizada la ejecución. Puede descargar datos y también consultar el registro de trabajos, la consola del navegador, las solicitudes de red y los errores.
volver a la página Panel colector usando el menú o la flecha hacia atrás arriba. Se muestra su nuevo coleccionista.
Haz click en eso Integre en su sistema y seleccione estas opciones:
- la Tiempo real (solicitud única) frecuencia de recolección
- JSON como el formato
- Descarga de API como la entrega
hacer clic Actualizar para guardar la configuración de integración y volver al panel de recopiladores.
Ahora haga clic en el menú de tres puntos al lado del colector y selecciónelo Ejecutar con la API.
La API muestra dos en la barra de inicio curl
solicitar comandos.
El primer equipo implementa un agregador de hashtags de Twitter. Esto requiere el token de API que creó anteriormente. Añadir al final Authorization: Bearer
título. Por ejemplo:
curl \
-H "Authorization: Bearer 12345678-9abc-def0-1234-56789abcdef0" \
-H "Content-Type: application/json" \
-d '{"Hashtag - #":"#SitePoint"}' \
"https://api.brightdata.com/dca/trigger_immediate?collector=abc123"
Devuelve una respuesta JSON con trabajo response_id
:
{
"response_id": "c3910b166f387775934ceb4e8lbh6cc",
"how_to_use": "https://brightdata.com/api/data-collector#real_time_collection"
}
Debes pasar el trabajo response_id
al segundo curl
El comando en la URL (también el token API en el encabezado de autorización):
curl \
-H "Authorization: Bearer 12345678-9abc-def0-1234-56789abcdef0" \
"https://api.brightdata.com/dca/get_result?response_id=c3910b166f387775934ceb4e8lbh6cc"
La API devuelve un esperando mensaje al ejecutar el colector:
{
"pending": true,
"message": "Request is pending"
}
Una vez que el recopilador termine de ejecutarse, finalmente devolverá un resultado JSON que contiene los datos del tweet. Puede importar esta información a sus propios sistemas según sea necesario:
[
{
"post": "https://twitter.com/UserOne/status/111111111111",
"date": "2022-10-17T19:09:00.000Z",
"Author": "UserOne",
"post body": "Tweet one content",
"likes": 0,
"comments": 0,
"Shares": 0,
"input": {
"Hashtag - #": "#SitePoint"
}
},
{
"post": "https://twitter.com/UserTwo/status/2222222222222",
"date": "2022-10-08T13:28:16.000Z",
"Author": "UserTwo",
"post body": "Tweet two content",
"likes": 0,
"comments": 0,
"Shares": 0,
"input": {
"Hashtag - #": "#SitePoint"
}
},...
]
El resultado también se puede obtener de los paneles Bright Data.
Proxies de datos brillantes
Si sus requisitos van más allá de raspar sitios web, puede usar la red proxy de Bright Data. Ejemplos de casos de uso:
- Tienes una aplicación de Android que quieres probar en la red móvil de India
- tiene un software de servidor que necesita descargar datos como usuario en uno o más países fuera de la ubicación real del servidor
Hay varios proxies disponibles, que incluyen:
- Certificados de residencia: un conjunto de IP rotativas sobre dispositivos reales instalados en viviendas residenciales
- servidores proxy ISP: IP residenciales de alta velocidad estáticas y rotativas en centros de datos de alta velocidad
- Proxies del centro de datos: IP estáticas y rotativas del centro de datos
- Proxies móviles: rotación de IP en dispositivos móviles reales 3G, 4G y 5G
- Proxy de desbloqueo web: Un sistema de desbloqueo automatizado a través de una red residencial que incluye una solución CAPTCHA
- Proxy API SERP: opción para recopilar datos de los resultados del motor de búsqueda
Cada uno ofrece opciones como reintento automático, limitación de solicitudes, rotación de IP, bloqueo de IP, limitación de ancho de banda, acceso, indicadores de éxito y omisión de proxy. Los precios oscilan entre $0,60 y $40 por GB, según la red.
La forma más fácil de comenzar es usar una extensión de navegador Cromo o Firefox. Puede configurar la extensión para usar cualquier red proxy específica, por lo que es ideal para probar sitios web en ubicaciones específicas.
Lo necesitas para un uso más avanzado administrador de proxy. Este es un proxy instalado en su dispositivo que actúa como intermediario entre su aplicación y la red de Bright Data. Utiliza opciones de línea de comandos para controlar dinámicamente la configuración antes de autenticarte y conectarte a un proxy real.
Versiones Linux, macOS, Windows, Estibadory similares Paquete Node.js npm. es el codigo fuente Disponible en Github. guiones de muestra Bright Data describe cómo puede usar un proxy en scripts de shell (curl
), Node.js, Java, C#, Visual Basic, PHP, Python, Ruby, Perl, etc.
El uso de un proxy puede ser complicado, por lo que Bright Data sugiere comunicarse con su administrador de cuentas para analizar los requisitos.
El resultado
El raspado de datos se ha vuelto cada vez más difícil a lo largo de los años, ya que los sitios web intentan evitar bots, crackers y ladrones de contenido. La complejidad adicional del contenido específico de ubicación, dispositivo y red hace que la tarea sea más difícil.
Información brillante ofrece una ruta rentable para la eliminación de chatarra. Puede obtener información útil de inmediato y adoptar otros servicios a medida que evolucionan sus requisitos. La red de Bright Data es confiable, flexible y eficiente, por lo que solo paga por los datos que extrae con éxito.