La idea de este ejercicio es scrapear la página de los diputados.
- Se accede a la página de los diputados
- Queremos recuperar una lista de diputados
. Para ello necesitamos acceder al enlace de Listado completo de la composición de la cámara - Una vez que tenemos la lista de diputados, queremos iterar por todos ellos para recuperar su información
.
Para la solución de este ejercicio se ha propuesto por @juanriaza dos aproximaciones:
- Se ha copiado en este repo la solución propuesta por @juanriaza. Para ejecutarlo, si se tienen todas las librerías y dependencias instaladas valdría con
python diputados_basico.py. - Los posibles problemas que se puede encontrar uno es no tener todas las dependencias perfectamente descargadas o utilizar una versión de python incorrecta:
- Para el ejemplo se utiliza python 3.x
- El ejemplo utiliza la librería
lxmlyurllibpip3 install xlmlpip3 install urllib
- El ejemplo es tan básico que se realiza de forma secuencial, se podría paralelizar... Si todo es correcto se debería tener una ejecución como la siguiente:

Esta solución es más avanzada ya que de primeras hay que tener instalado scrapy en el sistema para poder llevarla acabo. Para poder hacer eso de una forma limpia (no instalar scrapy directamente en el sistema, ya que tiene un montón de dependencias que al instalarlas nos puede dar problemas con otras librerías que dependían de ellas y se queden rotas), se recomienda el uso de una virtualenv. En caso de utilizar Ubuntu, hay un blogpost muy interesante Virtualenv para python en Ubuntu. Los pasos resumidos podrían ser los siguientes:
sudo apt-get install python3-pipInstalar pip para python3pip3 completion --bash >> ~/.bashrcPermitir el completado automático para pip3.source ~/.bashrcHabilitar la funcionalidad anteriorpip3 install --user virtualenvwrapperInstalar virtualenvwrapper que ofrece comandos sencillos para manejar los entornos virtuales.echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrcPara añadir al path de la terminal VIRTUALENVWRAPPER_PYTHONecho "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrcHabilitar la funcionalidad anterior.export WORKON_HOME=~/.virtualenvsCrear una variable de entorno que apunte a donde crearemos nuestros entornos virtuales.mkdir $WORKON_HOMECrear el directorio de los entornos virtuales.echo "export WORKON_HOME=$WORKON_HOME" >> ~/.bashrcIntroducir la variable de entorno en nuestro bash local para tenerlo siempre disponible.echo "export PIP_VIRTUALENV_BASE=$WORKON_HOME" >> ~/.bashrcTruco para decir a python que la creación de entornos virtuales tiene que ser en $WORKON_HOME.source ~/.bashrcHabilitar los cambios anteriores en el sistema.
Ahora falta testear lo que hemos configurado:
mkvirtualenv -p python3 test.... ERRORRRRRRRRRRRRRRR, para solucionar este error he necesitado instalar virtualenv mediante el gestor de paquetes de ubuntu:
pip3 install scrapyInstala scrapy en tu entorno virtual que este activado. Habría que ver una traza parecida a la siguiente:
scrapy runspider diputados_scrapy.pycorre el script de en la consolascrapy runspider diputados_scrapy.py -o diputados.csvmisma ejecución, pero pinta los resultados en un csv.
Posibles problemas con dependencias:
sudo apt-get install libssl-dev python3-devInstalar las dependencias de desarrollo de python y criptographycs
