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