Una guía para principiantes para rasparse web con pitón y hermosa sopa

Una guía para principiantes para rasparse web con pitón y hermosa sopa

La World Wide Web es la fuente final de todos los datos que hay que. El rápido desarrollo que Internet ha visto en las últimas tres décadas no ha tenido precedentes. Como resultado, la web se está montando con cientos de terabytes de datos cada día que pasa.

Todos estos datos tienen algún valor para cierta persona. Por ejemplo, su historial de navegación tiene importancia para las aplicaciones de redes sociales, ya que lo usan para personalizar los anuncios que le muestran. Y también hay mucha competencia por estos datos; Algunos MB más de algunos datos pueden dar a las empresas una ventaja sustancial sobre su competencia.

Minería de datos con Python

Para ayudar a aquellos de ustedes que son nuevos en el raspado de datos, hemos preparado esta guía en la que mostraremos cómo raspar datos de la web utilizando Python y hermosa biblioteca de sopa.

Suponemos que ya tiene una familiaridad intermedia con Python y HTML, ya que trabajará con ambas siguientes las instrucciones en esta guía.

Tenga cuidado en qué sitios está probando sus nuevas habilidades de minería de datos, ya que muchos sitios consideran esto intrusivo y saben que podría haber repercusiones.

Instalación y preparación de las bibliotecas

Ahora, vamos a usar dos bibliotecas que vamos a usar: la biblioteca de solicitudes de Python para cargar el contenido de las páginas web y la hermosa biblioteca de sopa para el bit de raspado real del proceso. Hay alternativas a Beautifulsoup, sí, y si está familiarizado con cualquiera de los siguientes, siéntase libre de usarlas en su lugar: Scrappy, Mechanize, Selenium, Portia, Kimono y Parsehub.

La biblioteca de solicitudes se puede descargar e instalar con el comando PIP en:

# PIP3 Instalar solicitudes

La biblioteca de solicitudes debe instalarse en su dispositivo. Del mismo modo, descargue BeautifulSoup también:

# pip3 instalar beautifulSoup4

Con eso, nuestras bibliotecas están listas para alguna acción.

Como se mencionó anteriormente, la biblioteca de solicitudes no tiene mucho uso que no sea obtener el contenido de las páginas web. La biblioteca y las bibliotecas de las solicitudes de BeautifulSoup tienen un lugar en cada script que va a escribir, y deben importarse antes de cada uno de los siguientes:

$ Solicitudes de importación
$ de bs4 import beautifulsoup como BS

Esto agrega la palabra clave solicitada al espacio de nombres, señalando a Python el significado de la palabra clave siempre que se solicite su uso. Lo mismo le sucede a la palabra clave BS, aunque aquí tenemos el beneficio de asignar una palabra clave más simple para beautifulsoup.

Página web = solicitudes.Obtener (URL)

El código anterior obtiene la URL de la página web y crea una cadena directa, almacenándola en una variable.

$ webcontent = webpage.contenido

El comando anterior copia el contenido de la página web y los asigna al contenido web variable.

Con eso, hemos terminado con la biblioteca de solicitudes. Todo lo que queda por hacer es cambiar las opciones de la biblioteca de solicitudes en opciones de beautifulsoup.

$ htmlcontent = bs (webcontent, "html.analizador ")

Esto analiza el objeto de solicitud y lo convierte en objetos HTML legibles.

Con todo lo que se cuida, podemos pasar al bit de raspado real.

Raspado web con Python y Beautifulsoup

Sigamos y veamos cómo podemos raspar para los objetos HTML de datos con BeautifulSoup.

Para ilustrar un ejemplo, mientras explicamos las cosas, trabajaremos con este fragmento HTML:

Podemos acceder al contenido de este fragmento con Beautifulsoup y usarlo en la variable de contenido HTML como en:


El código anterior busca cualquier etiqueta nombrada y se lo muestra al usuario. Si encuentra más de una etiqueta, les muestra una a la vez:

Tecnología

Para guardar simultáneamente las etiquetas nombradas en una lista, emitiríamos el código final como en:

La salida debe devolver así:

Para convocar una de las etiquetas, indexe la lista y tome la.

Ahora veamos cómo elegir etiquetas manteniendo en perspectiva sus características. Para separar A, necesitaríamos las etiquetas con el atributo "Tech_head". Ingrese el siguiente código:


para div en sopa.find_all ('div', attrs = 'class' = 'tech_head'):

Esto obtiene la etiqueta.

Obtendrías:

Tecnología

Todo sin etiquetas.

Por último, cubriremos cómo elegir el valor del atributo en una etiqueta. El código debe tener esta etiqueta:

Para operar el valor asociado con el atributo SRC, utilizaría lo siguiente:

htmlcontent.encontrar ("img") ["src"]

Y la salida resultaría como:

"Xyzlady.JPG "

Oh chico, eso seguro es mucho trabajo!

Si siente que su familiaridad con Python o HTML es inadecuada o si simplemente está abrumada con el rasguito de la web, no se preocupe.

Si usted es un negocio que necesita adquirir un tipo particular de datos regularmente pero no puede hacer que la web se raspen, hay formas de evitar este problema. Pero sé que te va a costar algo de dinero. Puede encontrar a alguien que haga el raspado por usted, o puede obtener el servicio de datos premium de sitios web como Google y Twitter para compartir los datos con usted. Estas comparten partes de sus datos empleando API, pero estas llamadas de API son limitadas por día. Aparte de eso, sitios web como estos pueden ser muy protectores con sus datos. Por lo general, muchos de estos sitios no comparten ninguno de sus datos en absoluto.

Pensamientos finales

Antes de terminar, déjame decirte en voz alta si ya no ha sido evidente; Los comandos find (), find_all () son tus mejores amigos cuando estás raspando con beautifulsoup. Aunque hay mucho más que cubrir para el raspado de datos maestros con Python, esta guía debería ser suficiente para aquellos de ustedes que recién comienzan.