Web Scraping en Python con Requests y lxml
El módulo Requests simplifica el manejo HTTP, mientras que lxml se utiliza para procesar los documentos HTML.
– Documentación oficial lxml
– Documentación oficial requests
Instalación de las librerias.
python -m pip install -U pip cd C:\Python27\Scripts pip install lxml pip install requests
Ejemplo de uso:
page = requests.get("http://url.com") tree = html.fromstring(page.text) table = tree.xpath('//table[@id=”prueba”]') print 'Total de tablas con id=prueba ', len(table)
Como usar la API de Twiter (parte 1)
Si tienes una cuenta de twiter y quieres realizarte una aplicación personalizada que utilice toda la información que hay en twiter (número de seguidores, amigos, tweets, etc), la gente de Twiter nos facilita una serie de llamadas rest que podemos utilizar para interactuar con ellos. Más información aquí.
En primer lugar decir que a día de hoy la versión de la API de twitter es la 1.1 (la 1.0 ya está deprecada). Esta versión 1.1 requiere usar autentificación OAUTH, de otra forma no podremos poner a funcionar la aplicación.
Por lo tanto para poder utilizar la api se deben seguir estos pasos:
1/ Crear una cuenta de desarrollador: esto se hace en https://dev.twitter.com/
2/ Una vez creada la cuenta de desarrollador ya podrás crear una nueva aplicación en la zona de «Mis Aplicaciones«.
3/ Tras crear la aplicación lo siguiente es crear los Tokens de acceso. (API keys y Access Tokens)
4/ Llegados a este punto ya podriamos utilizar la api. Existen ya un gran número de librerias que nos facilitaran el uso del api twiter para no tener que implementarlo de cero. Además, hay librerías para casi cualquier lenguaje posible. (Ver aquí)
Usar Mysql con Python para Windows
Para utilizar Mysql con Python basta con:
1 – Descargarse este módulo.
2 – Instalarla
python setup.py install
3 – Configurar tú aplicación para usar mysql
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'nombreBD', 'USER': 'usuario', 'PASSWORD': 'contraseña', 'HOST': '', #La cadena vacia representa localhost. 'PORT': '', #La cadena vacia representa el puerto por defecto (8000). } }
Nota: En este enlace te puedes descargar un ejecutable para windows que te instala el módulo con un simple doble click.
Usar Bootstrap en tu Django admin app
Si quieres añadir Bootstrap a tu aplicación realizada con el administrador de Django es tan facil como:
1 – Descargarte esta aplicación.
2 – Instalarla
pip install django-admin-bootstrapped
3 – Añadir ‘django_admin_bootstrapped’ a la lista de INSTALLED_APPS antes de ‘django.contrib.admin’
Instalar panel de administración de Django y añadir nuevos modelos
En primer lugar se debe activar la interfaz de la administración ya que se trata de una funcionalidad opcional. Pasos para activarlo:
1 – Realizar los siguiente cambios en el fichero settings.py:
* Añadir ‘django.contrib.admin’ a la propiedad INSTALLED_APPS.
* Añadir también a la propiedad INSTALLED_APPS los paquetes: ‘django.contrib.auth’, ‘django.contrib.contenttypes’, y ‘django.contrib.sessions’.
* Añadir en MIDDLEWARE_CLASSES los valores ‘django.middleware.common.CommonMiddleware’,
‘django.contrib.sessions.middleware.SessionMiddleware’, y ‘django.contrib.auth.middleware.AuthenticationMiddleware.
2 – Ejecutar python manage.py syncdb. Esto instalará las tablas de base de datos que utiliza el interfaz de administración. La primera vez que se ejecute syncdb con ‘django.contrib.auth’ en INSTALLED_APPS, te preguntará sobre la creación de un superusuario. Si no lo crea, tendrá que ejecutar python manage.py createsuperuser por separado para crear una cuenta de usuario administrador más adelante. Ya que esto es necesario para entrar a la administración.
3 – Agregue el sitio de administración a su URLconf en el fichero urls.py.
from django.contrib import admin admin.autodiscover() urlpatterns = patterns(”, (r’^admin/’, include(admin.site.urls)), )
4 – Ahora ya puede ejecutar la administración de Django. Simplemente hay que ejecutar el servidor de desarrollo (python manage.py runserver) e ir a la url http://127.0.0.1:8000/admin/
A continuación, ya puede añadir modelos al sitio de administración y crear sobre ellos los CRUD automáticamente con una interfaz amigable. Para ello dentro de la aplicación que contiene el modelo se debe crear un fichero admin.py con el siguiente contenido:
from django.contrib import admin from miaplicacion.models import modelocreado admin.site.register(modelocreado)
Una vez que haya hecho esto, en la página de inicio de administración se debe ver una sección de modelocreado. Es necesario reiniciar runserver para que los cambios tengan efecto.
Error Django: «ImportError: No module named defaults»
Este error pasa por usar django.conf.urls.defaults a partir de la versión 1.6 de Django. Ya que ha sido deprecado.
Ahora lo correcto es usar django.conf.urls
Actualizar la versión de Django
Para instalar una nueva versión de Django los pasos a seguir son:
1º – Desinstalar la versión instalada.
Para desinstalar django basta con borrar el directorio que hay en:
{carpeta de instalación de python}\Lib\site-packages
Si no sabes donde está se puede ejecutar la siguiente instrucción para buscarla:
python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"
2º – Instalar la nueva versión.
python setup.py install
Error en Django: «ImportError: No module named setuptools»
Intentando instalar una libreria para usar Django (python setup.py install). Me daba el siguiente error:
ImportError: No module named ‘setuptools’
Buscando un poco de información:
«Setuptools es una colección de programas para mejorar las herramientas de distribución de Python, que permiten crear y distribuir paquetes de Python, incluyendo dependencias para su instalación… Fuente»
Por lo tanto bastaría con instalarlo: https://pypi.python.org/pypi/setuptools
Para mi caso no me hizo falta instalar la librería setuptools. En su lugar simplemente instalé la librería distribute. Está librería ya ha sido absorvida por setuptools por lo tanto lo correcto es la otra opción.
Descargar distribute aquí: http://python-distribute.org/distribute_setup.py
Para instalar: python distribute_setup.py
Python, Django, Eclipse y PyDev
PyDev es un plugin que permite desarrollar en python mediante el eclipse. Por lo tanto, se puede utilizar para desarrollar con Django.
En la página oficial de PyDev hay manuales donde explican bastante bien su uso:
– Manual PyDev
Nota: Destacar que es necesario tener instalado java 1.7 para que el plugin funcione.
Categorias
- adobe (2)
- agile (1)
- Alfresco (1)
- Android (26)
- Angular (6)
- angularjs (10)
- apache (1)
- axis (2)
- Bases de datos (14)
- Bootstrap (1)
- C# (3)
- Cámara (1)
- chrome (3)
- Codeigniter (2)
- Control de Versiones (2)
- CSS (25)
- CVS (1)
- Django (9)
- Django Rest Framework (1)
- DNS (1)
- Docker (3)
- dominio (1)
- eclipse (5)
- Entity Framework (2)
- ETL (1)
- Firefox (6)
- flash (1)
- freecad (1)
- Git (12)
- GitHub (4)
- gpg (2)
- Groovy (1)
- Handlebars (1)
- hibernate (4)
- hosting (1)
- HTML (50)
- HTML 5 (26)
- Impresión 3D (9)
- Inkscape (1)
- IOS (2)
- ireports (3)
- Java (44)
- Javascript (55)
- JBoss (5)
- JPA (2)
- JQuery (20)
- Json (7)
- JSP (6)
- Keycloak (1)
- Lamp (1)
- LDAP (2)
- lean (1)
- linkedin (1)
- LINQ (1)
- linux (13)
- Livecycle (1)
- log (1)
- microcontroladores (1)
- MongoDB (4)
- MySQL (8)
- Node.js (5)
- OC4J (1)
- Openshift (2)
- Oracle (6)
- Patrones de Diseño (1)
- Photoshop (2)
- php (20)
- PostgreSQL (1)
- python (19)
- rabbitmq (1)
- Raspberry PI (13)
- Raspherry PI (5)
- React (6)
- seguridad (3)
- Selenium (3)
- Sencha Touch (1)
- Sin categoría (29)
- Spring (17)
- spring-boot (3)
- SQL (7)
- SQLServer (1)
- SSO (1)
- struts (2)
- SVN (1)
- Talend (1)
- Tomcat (6)
- unity (3)
- Visual Studio Code (2)
- vmware (5)
- Web Services (11)
- windows (18)
- wordpress (10)
- Xiaomi (1)
- xml (2)
Trabajos Realizados
- App Android – Autoka Fr
- App Android – Cartelera Cántabra
- App Android – Gramática y Vocabulario Ingles
- App Android – Hoja de Gastos
- App Android – Hotel Torre Cristina
- App Android – OcioEnjoy
- App Android – Visor CardBoard
- App Firefox – Managapp
- DiamanteBomba – DisasterCode
- Generador de Partes de Trabajo
- GitHub – Android Web Generator
- GitHub – Dynamic Angular Gallery
- GitHub – Dynamic React Gallery
- GitHub – Sotilizator
- GitHub – SpringAngularJS
- GitHub – Swiper Dynamic Angular Gallery
- HazParejas – DisasterCode
- RompeCabezas – DisasterCode
- Unity Game – English Couple
- Unity Game – Kill Wasp
- WordPress – El Buen Apicultor
- WordPress – El Cajón de los Retales
- WordPress – El Vestidito Azul
- WordPress – Feuchas
- WordPress – Fragua de Navajas Ponce
- WordPress – Humor a las Tres
- WordPress – Photo Places