Documentation and scripts
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
steps
.gitignore
README.md

README.md

WEB SCRAPING

Taller de extracción automatizada de datos de páginas web

Web scraping es una técnica que emplea diferentes tecnologías para extraer datos o información de una página web. Se usa para recoger datos sin estructura y convertirlos en datos estructurados para posteriormente ser tratados en bases de datos u hojas de cálculo. El taller es una aproximación práctica al scraping con el objetivo de permitir a los asistentes el tratamiento de información útil para sus propios proyectos.

I Edición: 6-7 febrero 2018 Montera34, Hirikilabs, (Tabakalera, San Sebastián)

II Edición: 11-12 de mayo de 2018 Aedi, (WorkInCompany, Sevilla).

Estructura

I Bloque
  • (1h) Introducción: presentación de la actividad, puesta en contexto y explicación del objetivo del taller.
  • (1h) Introducción al scraping: Explicación funcionamiento web (HTML, JSON, APIs...), e introducción de formas de almacenamiento de la información obtenida.
  • (2h) Desarrollo scraper: Explicación y puesta en práctica de herramientas iniciales para hacer scraping (postman, python, beautifulsoup, etc)
II Bloque
  • (3h) Desarrollo scraper: Continuación de la sesión del día anterior.
  • (1h) Introducción a técnicas avanzadas de scraping: Ejecución de Javascript, uso de proxies, otras cuestiones surgidas en el desarrollo del taller.

Preparación previa

Requerimientos

  • Tener python2 instalado

Recomendaciones

Si no lo tienes instalado en tu portátil, te pedimos que lo instales antes del taller para aprovechar mejor el tiempo que estemos juntos. Según el sistema operativo que tengas, puedes seguir una de los siguientes tutoriales:

Los ejercicios están preparados para ejecutarse con Python2, pero con pequeños cambios puede ejecutarse con Python3

Linux

Instalar python

  • Abre una terminal
  • Comprueba si ya tienes instalado python tecleando:
    python -version
  • Si no lo tienes instalado teclea:
    sudo apt-get install python

Instalar pip

  • Abre una terminal
  • Entra en la consola de python tecleando:
    python
  • Comprueba que tienes pip instalado:
    pip import
  • Si no lo tienes, ejecuta:
    sudo apt-get install python-pip

Windows

Instalar python

  • Descarga python pinchando aqui
  • Ejecuta el archivo descargado y sigue las instrucciones.
  • Si te da error, intenta seguir este tutorial
  • Confirmar tecleando en consola CMD:
    python -version

Instalar pip

  • Sigue estas instrucciones
  • Si te da error, intenta añadir al PATH la localización de pip. Prueba a meter el full path: C:\Python27\Scripts\pip
  • Confirmar tecleando en la consola de python:
    pip import

Windows Vista: Para que python funcione en Windows Vista tenemos que añadirlo al “path” de manera que al escribir “python” en la linea de comandos (CMD) lo reconozca. Añadir a PATH significa decirle al ordenador dónde tiene que buscar el progama python.

Instalar módulos python con pip

  • Teclear:
    pip install bs4
  • Si da error, tecleando
    C:\Python27\Scripts\pip install bs4

Windows 10: para instalar un paquete, usar py -m pip install bs4

Mac

Instalar python

  • Descarga python pinchando en este enlace
  • Ejecuta el archivo descargado y sigue las instrucciones.

Instalar módulos python con pip

  • Para instalar librerías o módulos de Python, que añaden funcionalidades adicionales, se puede user pip desde la línea de comandos del sistema operativo, no desde la consola de Python:
    pip install nombre-modulo

Recursos de interés

Módulos Python que utilizaremos

Urllib, Requests, BeautifulSoup

Otras herramientas que utilizaremos

POSTMAN, Selenium

Introducción a HTML

Selectores CSS

Curso HTML básico de Codeacademy, Mensajes HTML, Tipos de peticiones HTML, Cabeceras HTML

Tutoriales

How to fake and rotate User Agents using Python 3, How to Solve Simple Captchas, Urllib Proxies

Otras herramientas

Scrapy, PhantomJS