Prerrequisitos: Web scrapping usando Beautiful Soup , XML Parsing
El raspado es una habilidad muy esencial que todos deberían aprender. Nos ayuda a eliminar datos de un sitio web o un archivo que el programador puede usar de otra manera hermosa. En este artículo, aprenderemos cómo extraer una tabla de un sitio web y XML de un archivo.
Aquí, desecharemos los datos usando el módulo Python de Beautiful Soup.
Módulos Requeridos:
- bs4: Beautiful Soup es una biblioteca de Python para extraer datos de archivos HTML y XML. Se puede instalar usando el siguiente comando:
pip install bs4
- lxml: Es una biblioteca de Python que nos permite manejar archivos XML y HTML. Se puede instalar usando el siguiente comando:
pip install lxml
- request: Requests le permite enviar requests HTTP/1.1 de forma extremadamente sencilla. Se puede instalar usando el siguiente comando:
pip install request
Enfoque paso a paso para analizar tablas:
Paso 1: Primero, necesitamos importar módulos y luego asignar la URL.
Python3
# import required modules import bs4 as bs import requests # assign URL URL = 'https://www.geeksforgeeks.org/python-list/'
Paso 2: Cree un objeto BeautifulSoap para analizar.
Python3
# parsing url_link = requests.get(URL) file = bs.BeautifulSoup(url_link.text, "lxml")
Paso 3: luego encuentra la tabla y sus filas.
Python3
# find all tables find_table = file.find('table', class_='numpy-table') rows = find_table.find_all('tr')
Paso 4: ahora cree un bucle para encontrar todas las etiquetas td en la tabla y luego imprima todas las etiquetas de datos de la tabla.
Python3
# display tables for i in rows: table_data = i.find_all('td') data = [j.text for j in table_data] print(data)
A continuación se muestra el programa completo basado en el enfoque anterior:
Python3
# import required modules import bs4 as bs import requests # assign URL URL = 'https://www.geeksforgeeks.org/python-list/' # parsing url_link = requests.get(URL) file = bs.BeautifulSoup(url_link.text, "lxml") # find all tables find_table = file.find('table', class_='numpy-table') rows = find_table.find_all('tr') # display tables for i in rows: table_data = i.find_all('td') data = [j.text for j in table_data] print(data)
Producción:
Enfoque paso a paso para analizar archivos XML:
Paso 1: antes de continuar, puede crear su propio ‘archivo xml’ o simplemente puede copiar y pegar el código a continuación y nombrarlo como archivo test1.xml en su sistema.
<?xml version="1.0" ?> <books> <book> <title>Introduction of Geeksforgeeks V1</title> <author>Gfg</author> <price>6.99</price> </book> <book> <title>Introduction of Geeksforgeeks V2</title> <author>Gfg</author> <price>8.99</price> </book> <book> <title>Introduction of Geeksforgeeks V2</title> <author>Gfg</author> <price>9.35</price> </book> </books>
Paso 2: Cree un archivo python e importe módulos.
Python3
# import required modules from bs4 import BeautifulSoup
Paso 3: Leer el contenido del XML.
Python3
# reading content file = open("test1.xml", "r") contents = file.read()
Paso 4: Analice el contenido del XML.
Python3
# parsing soup = BeautifulSoup(contents, 'xml') titles = soup.find_all('title')
Paso 5: Mostrar el contenido del archivo XML.
Python3
# parsing soup = BeautifulSoup(contents, 'xml') titles = soup.find_all('title')
A continuación se muestra el programa completo basado en el enfoque anterior:
Python3
# import required modules from bs4 import BeautifulSoup # reading content file = open("test1.xml", "r") contents = file.read() # parsing soup = BeautifulSoup(contents, 'xml') titles = soup.find_all('title') # display content for data in titles: print(data.get_text())
Producción: