Revisión de Semalt: Web Scraping por diversión y ganancias

Puede raspar el sitio sin la necesidad de una API. Si bien los propietarios de sitios son agresivos para detener el raspado, se preocupan menos por las API y, en cambio, ponen más énfasis en los sitios web. El hecho de que muchos sitios no protegen adecuadamente contra el acceso automático crea un margen de maniobra para los raspadores. Algunas soluciones simples lo ayudarán a recolectar los datos que necesita.

Comenzando con el raspado

El raspado requiere comprender la estructura de los datos que necesita y su accesibilidad. Esto comienza recuperando sus datos. Encuentre la URL que le devuelve la información que necesita. Navegue por el sitio web y compruebe cómo cambian las URL a medida que navega por las diferentes secciones.

Alternativamente, busque varios términos en el sitio y verifique cómo cambian las URL en función de su término de búsqueda. Debería ver un parámetro GET como q = que cambia cada vez que busca un nuevo término. Conserve los parámetros GET necesarios para cargar sus datos y elimine los demás.

Cómo lidiar con la paginación

La paginación le impide acceder a todos los datos que necesita a la vez. Cuando hace clic en la página 2, se agrega un parámetro offset = a la URL. Este es el número de elementos en una página o el número de página. Incremente este número en cada página de sus datos.

Para los sitios que usan AJAX, abra la pestaña de red en Firebug o Inspector. Verifique las solicitudes de XHR, identifíquese y concéntrese en aquellas que obtienen sus datos.

Obtener datos del marcado de página

Esto se logra usando ganchos CSS. Haga clic derecho en una sección particular de sus datos. Tire del Firebug o Inspector y amplíe el árbol DOM para obtener el <div> más externo que envuelve un solo elemento. Una vez que tenga el nodo correcto del árbol DOM, vea la fuente de la página para asegurarse de que sus elementos sean accesibles en HTML sin formato.

Para el raspado del sitio con éxito, necesita una biblioteca de análisis HTML que lea en HTML y lo convierta en un objeto que pueda iterar hasta que obtenga lo que necesita. Si su biblioteca HTTP requiere que configure algunas cookies o encabezados, navegue por el sitio en su navegador web y obtenga los encabezados enviados por su navegador. Póngalos en un diccionario y reenvíe su solicitud.

Cuando necesita un inicio de sesión para raspar

Si debe crear una cuenta e iniciar sesión para obtener los datos que desea, debe tener una buena biblioteca HTTP para manejar los inicios de sesión. El inicio de sesión de Scraper lo expone a sitios de terceros.

Si el límite de velocidad de su servicio web depende de la dirección IP, configure un código que llegue al servicio web en un Javascript del lado del cliente. Luego reenvíe los resultados a su servidor desde cada cliente. Los resultados parecerán originarse en tantos lugares, y ninguno excederá su límite de velocidad.

Marcado mal formado

Algunas marcas pueden ser difíciles de validar. En tales casos, busque en su analizador HTML la configuración de tolerancia a errores. Alternativamente, trate el documento HTML completo como una cadena larga y divida la cadena.

Si bien puede raspar todo tipo de datos en la red, algunos sitios emplean software para detener el raspado y otros prohíben el raspado de la web . Dichos sitios pueden demandarlo e incluso encarcelarlo por recolectar sus datos. Así que sea inteligente en todo su raspado web y hágalo de manera segura.