¡Esta es una revisión vieja del documento!
Tabla de Contenidos
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))
