Herramientas de usuario

Herramientas del sitio


python:webscraping

¡Esta es una revisión vieja del documento!


Web Scraping

Módulo Webbrowser

El módulo webbrowser sólo abre la dirección de internet que se especifique en una nueva pestaña del navegador configurado por defecto.

# Abrir dirección en google maps
import webbrowser, sys, pyperclip
 
if len(sys.argv)>1:     # Comprobamos si hay parámetros de entrada
    direccion = '+'.join(sys.argv[1:])
 
else:                   # Si no hay parámetros de entrada toma los datos del portapapeles
    direccion = pyperclip.paste()
    # calle salsipuedes, 2, Madrid
 
webbrowser.open("https://www.google.es/maps/place/" + direccion)

Módulo requests

Con este módulo es posible descargar archivos de la web de forma sencilla.
No viene por defecto instalado con python, por lo que habría que ejecutar:

pip install --user requests

Python dispone de la librería ulllib2 para este cometido, pero es complicada de manejar.

Para descargar una página web, o un archivo, basta con especificar la URL en la fución .get()

import requests
res = requests.get('https://automatetheboringstuff.com/files/rj.txt')  # Descargamos Romeo y Julieta en txt
type(res)  # Tipo request.models.Response
res.status_code == requests.codes.ok  # 200
len(res.txt)  # Nº de caracteres del txt
print(rest.text[:250])  # Se muestran los primeros 250 carateres
type(res)  # Tipo request.models.Response
res.status_code == requests.codes.ok  # 200
len(res.txt)  # Nº de caracteres del txt
print(rest.text[:250])  # Se muestran los primeros 250 carateres

Chequeo de errores

requests dispone del atributo status_code, para ver la respuesta que devuelve a la petición, que si todo va bien será 200 (requests.codes.ok).

Podemos usar el método res.raise_for_status() (no lleva parámetros) para lanzar una excepción si se produce un error. Si no queremos ser tan radicales y queremos que se siga ejecutando el programa manejando lo que se hace, podemos ysar la sentencia try catch:

import requests
res = requests.get('https://inventwithpython.com/page_that_does_not_exist') 
 
try:
    res.raise_for_status()
except Exception as exc:
    print('Hubo un probema: %s' %(exc))

Módulo bs4

Módulo selenium

python/webscraping.1707140269.txt.gz · Última modificación: por alberto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki