Semalt: Raspado web con Python

¿Has pasado por uno de esos terribles momentos en los que no tienes Wi-Fi? Si es así, entonces te has dado cuenta de cuánto de lo que haces en tu computadora depende de la red. Por pura costumbre, se encontrará revisando sus correos electrónicos, viendo las fotos de Instagram de sus amigos y leyendo sus tweets.

Dado que gran parte del trabajo de la computadora involucra los procesos web, sería muy conveniente que sus programas también pudieran conectarse. Este es el caso del web scraping . Implica utilizar un programa para descargar y procesar contenido de la web. Por ejemplo, Google usa una variedad de programas de raspado para indexar páginas web para su motor de búsqueda.

Hay muchas formas en las que puede extraer datos de Internet. Muchos de estos métodos requieren el comando de una variedad de lenguajes de programación como Python y R. Por ejemplo, con Python, puede utilizar varios módulos como Requests, Beautiful soup, Webbrowser y Selenium.

El módulo 'Solicitudes' le permite descargar archivos fácilmente desde la web sin tener que preocuparse por problemas difíciles como problemas de conexión, errores de red y compresión de datos. No necesariamente viene con Python, por lo que deberá instalarlo primero.

El módulo fue desarrollado porque el módulo 'urllib2' de Python tiene muchas complicaciones que dificultan su uso. En realidad es bastante fácil de instalar. Todo lo que tiene que hacer es ejecutar las solicitudes de instalación de pip desde la línea de comandos. Luego debe hacer una prueba simple para asegurarse de que el módulo se haya instalado correctamente. Para hacerlo, puede escribir '>>> solicitudes de importación' en el shell interactivo. Si no se muestran mensajes de error, la instalación se realizó correctamente.

Para descargar una página, debe iniciar la función 'request.get ()'. La función toma una cadena de URL para descargar y luego devuelve un objeto de 'respuesta'. Contiene la respuesta que el servidor web devolvió para su solicitud. Si su solicitud tiene éxito, la página web descargada se guarda como una cadena en la variable de texto de los objetos de respuesta.

El objeto de respuesta generalmente tiene un atributo de código de estado que puede usar para averiguar si su descarga fue exitosa. Del mismo modo, puede llamar al método 'raise_for_status ()' en un objeto de respuesta. Esto genera una excepción si se produjo algún error al descargar el archivo. Es una excelente manera de asegurarse de que un programa se detenga en caso de una descarga incorrecta.

Desde aquí, puede guardar su archivo web descargado en su disco duro utilizando las funciones estándar, 'open ()' y 'write ()'. Sin embargo, para conservar la codificación Unicode del texto, deberá sustituir los datos de texto con datos binarios.

Para escribir los datos en un archivo, puede utilizar un bucle 'for' con el método 'iter_content ()'. Este método devuelve grandes cantidades de datos en cada iteración a través del bucle. Cada lote está en bytes, y debe especificar cuántos bytes contendrá cada lote. Una vez que haya terminado de escribir, llame a 'close ()' para cerrar el archivo, y su trabajo habrá terminado.