Yelp es uno de los sitios web de directorios de empresas más grandes de Internet. Millones de personas buscan negocios potenciales o dejan una reseña en este sitio web todos los días. La información comercial y las reseñas están agregando información valiosa a la plataforma. En este tutorial, te mostraremos cómo recopilar información comercial en Yelp con Octoparse 8.1.
La forma más sencilla sería utilizar nuestras plantillas prediseñadas de Yelp. No es necesario configurar tareas de raspado, solo ingresa palabras clave / URL y obtendrás los datos. Para más detalles, puedes consultar aquí: Plantillas de Tarea
Si quieres saber cómo construir la tarea desde cero, puedes continuar leyendo el siguiente tutorial o ver este video a continuación.
Para demostrarlo, usaremos la siguiente URL como ejemplo.
Scrapearemos datos como el título, la calificación de estrellas, el número de reseñas y el sitio web con Octoparse.
Estos son los pasos principales de este tutorial: [Descargar archivo de tareas de demostración aquí]
1. Ir a la Página Web - abrir la web de destino
Ingresa la URL en la página de inicio y haz clic en "Iniciar"
2. Detectar automáticamente la página web - crear el flujo de trabajo
Haz clic en "Detectar automáticamente los datos de la página web" y espera a que se complete la detección.
Elimina los campos no deseados o cambia el nombre de los campos si es necesario en la Vista Previa de Datos
Haz clic en "Editar" en "Paginar para scrapear más páginas".
Seleccione el botón de siguiente en la página web
Haz clic en "Confirmar"
Haz clic en "Crear flujo de trabajo".
3. Modificar la configuración de la Paginación
En la mayoría de los casos, el XPath predeterminado para la paginación funciona bien, pero Yelp es bastante estricto con el raspado de datos y tiene un código fuente muy difícil de leer, por lo que necesitamos revisar el XPath para la paginación.
Haz clic para abrir la configuración de acción de la Paginación
Ingresa el XPath: //a[contains(@class,'next-link')]
Haz clic en "Aceptar" para confirmar
Nota
Si quieres obtener más información sobre XPath, consulta el siguiente tutorial:
|
Haz clic para abrir la configuración de acción de "Hacer clic para paginar"
Extiende el tiempo de espera de AJAX a 7-10 s
Si todos los datos que necesitas se pueden extraer de la página de la lista, puede detenerte aquí y saltar a Iniciar extracción - ejecutar la tarea y obtener datos. Si quieres ir a cada página de detalles para obtener más información, sigue los pasos a continuación.
4. Hacer clic en cada página de detalles para obtener más información
Elige "Hacer clic en los enlaces para scrapear las páginas vinculadas" en el panel de Tips.
Selecciona "Hacer clic en un campo de datos extraídos" y selecciona el campo en el que quieres hacer clic en el menú desplegable (puedes confirmar si es el enlace correcto en la Vista previa de datos)
Haz clic en "Confirmar"
5. Extraer datos - extraer datos en la página de detalles
Seleccionar información en la página web
Elige "Extraer texto del elemento seleccionado"
Repite los pasos anteriores para extraer todos los datos que necesitas
Nota
|
Cambia el nombre de los campos si es necesario
Ahora necesitamos revisar el elemento XPath para cada campo de datos para scrapear la información con mayor precisión.
Haz doble clic en la acción "Extraer Datos1" en el flujo de trabajo
Haz clic en el icono
para modificar el XPath uno por uno
Reemplaza el XPath predeterminado por el revisado
¡No te preocupes! Hemos preparado para ti los XPaths de los campos frecuentes. Puedes usar el elemento XPath que se muestra a continuación.
Website: //p[text()='Business website']/following-sibling::p[1]
Phone: //p[text()='Phone number']/following-sibling::p[1]
Open hours: //table[contains(@class,'hours-table')]
Address: //address
Amenities: //h4[text()='Amenities and More']/../../following-sibling::div
About the business: //h4[text()='About the Business']/../../following-sibling::div
Price range: //span[contains(text(),'$')]
Category: //a[contains(@class,'link-color--inherit')]
Rating: (//div[contains(@aria-label,'star rating')])[1]
Nota
La información de calificación se almacena dentro del valor del atributo. Podemos hacer clic en el área de Calificación
, y elegir extraer el texto. Luego personaliza el campo para eliminar el valor del atributo "aria-label".
Para saber más sobre cómo tratar con "Extraer datos", consulta las siguientes tutoriales:
|
6. Configurar el tiempo de espera para reducir la velocidad de raspado
El sitio web de Yelp aplica una técnica anti-raspado y bloquearía tu IP si raspas demasiado rápido. Necesitamos ralentizar el raspado estableciendo el tiempo de espera.
Haz doble clic en la acción "Extraer Datos1".
Marca "Esperar antes de la acción"
Selecciona el tiempo de espera entre 7 y 10 segundos
7. Ejecutar tu tarea - obtener los datos que quieres
Haz clic en "Guardar"
Haz clic en "Ejecutar" en la parte superior izquierda
Selecciona "Ejecutar tarea en tu dispositivo
" para ejecutar la tarea en tu computadora, o selecciona "Ejecutar tarea en la nube
" para ejecutar la tarea en la nube (solo para usuarios del plan premium)
Aquí tienes una muestra de datos.