Python: lectura de páginas HTML
biblioteca conocida como beautifulsoup. Con esta biblioteca, podemos buscar los valores de las etiquetas html y obtener datos específicos como el título de la página y la lista de encabezados de la página.
Instalar Beautifulsoup
Utilice el administrador de paquetes de Anaconda para instalar el paquete requerido y sus paquetes dependientes.
conda install Beaustifulsoap
Leer el archivo HTML
En el siguiente ejemplo, hacemos una solicitud a una URL para que se cargue en el entorno de Python. Luego, use el parámetro del analizador html para leer todo el archivo html. A continuación, imprimimos las primeras líneas de la página html.
import urllib2
from bs4 import BeautifulSoup
# Fetch the html file
response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()
# Parse the html file
soup = BeautifulSoup(html_doc, 'html.parser')
# Format the parsed html file
strhtm = soup.prettify()
# Print the first few characters
print (strhtm[:225])
Cuando ejecutamos el código anterior, produce el siguiente resultado.
<!DOCTYPE html>
<!--[if IE 8]><html class="ie ie8"> <![endif]-->
<!--[if IE 9]><html class="ie ie9"> <![endif]-->
<!--[if gt IE 9]><!-->
<html>
<!--<![endif]-->
<head>
<!-- Basic -->
<meta charset="utf-8"/>
<title>
Extraer valor de etiqueta
Podemos extraer el valor de la etiqueta de la primera instancia de la etiqueta usando el siguiente código.
import urllib2
from bs4 import BeautifulSoup
response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()
soup = BeautifulSoup(html_doc, 'html.parser')
print (soup.title)
print(soup.title.string)
print(soup.a.string)
print(soup.b.string)
Cuando ejecutamos el código anterior, produce el siguiente resultado.
Python Overview
Python Overview
None
Python is Interpreted
Extraer todas las etiquetas
Podemos extraer el valor de la etiqueta de todas las instancias de una etiqueta usando el siguiente código.
import urllib2
from bs4 import BeautifulSoup
response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()
soup = BeautifulSoup(html_doc, 'html.parser')
for x in soup.find_all('b'): print(x.string)
Cuando ejecutamos el código anterior, produce el siguiente resultado.
Python is Interpreted
Python is Interactive
Python is Object-Oriented
Python is a Beginner's Language
Easy-to-learn
Easy-to-read
Easy-to-maintain
A broad standard library
Interactive Mode
Portable
Extendable
Databases
GUI Programming
Scalable