Web Scraping con Python | Web Scraping con Python en ciencia de datos

Contenidos

Este artículo fue publicado como parte del Blogatón de ciencia de datos

¡Las secciones de tu melodía principal son una especie de arañazos en la telaraña! Independientemente, las palabras «web scratching» en general implican una conexión que incorpora informatización. Un par de destinos podrían prescindir de él cuando los depuradores personalizados recopilen sus datos, mientras que otros no se preocuparían.

Esperando que esté rascando una página deliberadamente en busca de elementos informativos, es de suponer que no tendrá ningún problema. Teniendo en cuenta todo, es una buena idea hacer una evaluación aislada y garantizar que no está ignorando los Términos de servicio antes de comenzar un gigantesco proyecto de grado. Para sentirse cómodo con las piezas legales del raspado web, eche un vistazo a Perspectivas legales sobre el raspado de datos de la Web moderna.

¿Por qué web scraping?

Justo cuando rascamos la web, creamos un código que envía una solicitud que está funcionando con la página que decidimos. El especialista devolverá el código fuente – HTML, en su mayor parte – de la página (o páginas) a las que hicimos referencia.

Hasta hace poco, básicamente estamos haciendo más que un programa web: enviar interés con una URL específica y mencionar que el especialista devuelve el código para esa página.

En cualquier caso, a diferencia de un programa web, nuestro código de scratching web no traducirá el código fuente de la página y mostrará la página de forma ostensible. Teniendo todo en cuenta, pensaremos en algún código personalizado que canalice a través del código fuente de la página buscando partes expresas que hayamos demostrado y quitando cualquier sustancia que le hayamos enseñado a eliminar.

Por ejemplo, en caso de que esperáramos obtener el total de los datos del interior de una tabla que apareció en la página de un sitio, nuestro código se formaría para seguir estos métodos en la recopilación:

1 Solicitud de la sustancia (código fuente) de una URL específica del trabajador
2 Descargue la sustancia que se devuelve.
3 Distingue los segmentos de la página que son fundamentales para la tabla que necesitamos.
4 Concentre y (si es crucial) reformatee esos segmentos en un conjunto de datos que podamos desarmar o utilizar de la forma que necesitemos.

Si todo eso suena particularmente complicado, ¡no presiones! Python y Beautiful Soup tienen características naturales propuestas para que esto sea en su mayor parte inmediato.
Una cosa que es fundamental para tener en cuenta: desde la perspectiva de un especialista, hacer referencia a una página a través del web scratching es comparable a apilarla en un programa web. Exactamente cuando usamos código para introducir estas solicitudes, podríamos estar «apilando» páginas significativamente más rápido que un cliente estándar, y de esta manera consumiendo rápidamente los recursos de mano de obra del propietario del sitio.

Web Scraping de datos para aprendizaje automático:

En caso de que raspe los datos para la IA, prometa que ha verificado las concentraciones bajas antes de acercarse a la extracción de datos.

Formato de datos:

Los modelos de inteligencia simulada pueden simplemente aumentar abruptamente la popularidad de los datos que están en una asociación simple o similar a una tabla. En este sentido, el raspado de datos no estructurados requerirá, de esta manera, una mayor libertad para cuidar los datos antes de que puedan ser utilizados.

Lista de datos:

Dado que el objetivo clave es la inteligencia artificial, cuando tiene las ubicaciones o las páginas de la página web que desea eliminar, debe hacer una descripción general de los centros de datos o las fuentes de datos que desea eliminar de cada página del sitio. Si el caso es con el objetivo final de que falte una gran cantidad de centros de datos para cada página del sitio, entonces debe recortar y elegir los centros de datos que generalmente están presentes. La razón de esto es que tantas características NA o vacías disminuirán la presentación y precisión del modelo de IA (ML) que entrena y prueba con los datos.

Etiquetado de datos:

La verificación de datos puede ser una agonía cerebral. En cualquier caso, si puede acumular los metadatos necesarios mientras los datos se rascan y almacenarlos como un punto de datos alternativo, beneficiará a las etapas correspondientes en el ciclo de vida de los datos.

Limpiar, preparar y almacenar los datos

Si bien este movimiento puede parecer fundamental, habitualmente es quizás el avance más enredado y triste. Este es el resultado directo de una clara aclaración: no hay una conexión que sirva para todos. Depende de los datos que haya borrado y de dónde los haya borrado. Necesitará estrategias rápidas para limpiar los datos.

Lo más importante es que debe revisar los datos para comprender qué degradaciones se encuentran en las fuentes de datos. Puede hacer esto usando una biblioteca como Pandas (disponible en Python). En el momento en que se realiza su evaluación, debe crear una sustancia para eliminar las deformidades en las fuentes de datos y normalizar los centros de datos que no son como los demás. Luego, realizaría grandes verificaciones para verificar si los centros de datos tienen todos los datos en un tipo de datos singular. Un fragmento que debería contener números no puede tener una línea de datos. Por ejemplo, uno que debería contener datos en la configuración dd / mm / aaaa no puede contener datos en alguna otra asociación. Aparte de estas verificaciones del plan, las características que faltan, las características no válidas y cualquier otra cosa que pueda romper el tratamiento de los datos, deben percibirse y corregirse.

¿Por qué Python para Web Scraping?

Python es un dispositivo conocido para ejecutar web scratching. El lenguaje de programación Python también se utiliza para otras actividades valiosas identificadas con la seguridad de la red, las pruebas de acceso al igual que las aplicaciones medibles avanzadas. Utilizando la programación básica de Python, el raspado web se puede realizar sin utilizar ningún otro aparato externo.

El lenguaje de programación Python está adquiriendo una inmensa prevalencia y las razones que hacen de Python una combinación sólida para los proyectos de scratching web son las siguientes:

Simplicidad de puntuación

Python tiene la construcción más sencilla en comparación con otros dialectos de programación. Este elemento de Python simplifica las pruebas y un ingeniero puede concentrarse en programación adicional.

Módulos incorporados

Otra justificación para utilizar Python para hacer scratching en la web es la incorporación de las valiosas bibliotecas externas que tiene. Podemos realizar numerosas ejecuciones identificadas con web scratching utilizando Python como base para la programación.

Lenguaje de programación de código abierto

Python cuenta con una gran ayuda del área local ya que es un lenguaje de programación de código abierto.

Amplia gama de aplicaciones

Python se puede utilizar para diferentes asignaciones de programación que van desde pequeños contenidos de shell hasta aplicaciones web de grandes empresas.

Módulos de Python para web scraping

El raspado web es el camino hacia el desarrollo de un especialista que pueda extraer, analizar, descargar y coordinar datos valiosos de la web en consecuencia. Al final del día, en lugar de guardar físicamente la información de los sitios, la programación web scratching cargará y concentrará la información de diferentes sitios de acuerdo con nuestro prerrequisito.

Solicitud

Es una biblioteca de scratch web de Python sencilla. Es una biblioteca HTTP eficaz que se utiliza para acceder a las páginas. Con la ayuda de Solicitudes, podemos obtener el HTML crudo de las páginas del sitio que luego podrían analizarse para recuperar la información.

Sopa hermosa

Beautiful Soup es una biblioteca de Python para extraer información de registros HTML y XML. Tiende a utilizarse con demandas, ya que necesita una pieza de información (informe o URL) para hacer un objeto de sopa, ya que no puede traer una página del sitio sin la ayuda de nadie más. Puede utilizar el contenido de Python adjunto para ensamblar el título de la página y los hipervínculos.

Código –

import urllib.request
from urllib.request import urlopen, Request
from bs4 import BeautifulSoup 
wiki= "https://www.thestar.com.my/search/?q=HIV&qsort=oldest&qrec=10&qstockcode=&pgno=1"
html=urlopen(wiki)
bs= BeautifulSoup(html,'lxml')
bs
Beautiful Soup is used to extract the website page
31806picture4-6844526

(fuente de la imagen: cuaderno Jupyter)

Código-

from bs4 import BeautifulSoup 
base_url="https://www.thestar.com.my/search/?q=HIV&qsort=oldest&qrec=10&qstockcode=&pgno="
# Add 1 because Python range.
url_list = ["{}{}".format(base_url, str(page)) for page in range(1, 408)]
s=[]
for url in url_list:
    print (url)
    s.append(url)

Producción-

El código anterior enumerará el número de páginas web en el rango de 1 a 407.

62542picture5-8600942

(fuente de la imagen: cuaderno Jupyter)

Código –

data = []
data1= []
import csv
from urllib.request import urlopen, HTTPError
from datetime import datetime, timedelta
for pg in s:
    # query the website and return the html to the variable 'page'
    page = urllib.request.urlopen(pg)
    try:
        search_response = urllib.request.urlopen(pg)
    except urllib.request.HTTPError:
        pass
    # parse the html using beautiful soap and store in variable `soup`
    soup = BeautifulSoup(page, 'html.parser')
    # Take out the <div> of name and get its value
    ls = [x.get_text(strip=True) for x in soup.find_all("h2", {"class": "f18"})]
    ls1=  [x.get_text(strip=True) for x in soup.find_all("span", {"class": "date"})]
    # save the data in tuple
    data.append((ls))
    data1.append(ls1)

Producción-

El código anterior tomará todos los datos con la ayuda de una hermosa sopa y los guardará en la tupla.

92380picture6-3592565

(fuente de la imagen: cuaderno Jupyter)

Código

import pandas as p
df=p.DataFrame(f,columns=['Topic of article'])
df['Date']=f1

Producción-

Pandas

Pandas es un instrumento de investigación y control de información de código abierto rápido, increíble, adaptable y simple de utilizar, basado en la parte superior del lenguaje de programación Python.

El código anterior almacena el valor en el marco de datos.

55923picture7-1704540

(fuente de la imagen: cuaderno Jupyter)

Espero que disfruten del código.

Pequeña introducción

Yo, Sonia Singla, he realizado una maestría en bioinformática de la Universidad de Leicester, Reino Unido. También he realizado algunos proyectos sobre ciencia de datos de CSIR-CDRI. Actualmente es miembro asesor del consejo editorial de IJPBS.

Linkedin – https://www.linkedin.com/in/soniasinglabio/

Los medios que se muestran en este artículo sobre la implementación de modelos de aprendizaje automático que aprovechan CherryPy y Docker no son propiedad de DataPeaker y se utilizan a discreción del autor.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.