Mostrando las entradas con la etiqueta web. Mostrar todas las entradas
Mostrando las entradas con la etiqueta web. Mostrar todas las entradas

viernes, 31 de enero de 2020

Introducción a Web Scraping

Buenas, ahora vengo con esta entrada donde quiero compartir una breve y corta introducción sobre Web Scraping. En principio quiero hacer esta introducción porque actualmente me encuentro trabajando en la Industria de Ciencia de Datos o como le dicen en ingles y suena mas bonito, 'Data Sciencie Industry'.

Una parte importante del proceso de Data Science consiste en la busqueda de fuentes de datos, en muchas ocaciones estas fuentes de datos no se encuentran en un formato común o estandar como bases de datos SQL o archivos CSV, simplemente son fuentes de datos en documentos no estructurados o que se encuentran en la web a modo de documentos HTML.

Creo que algunas personas de alguna forma u otra han realizado este proceso de obtener información de un sitio web para ser usado en algún otro proyecto, con un rudimentario copy/paste, se puede decir que es el abuelito del scraping a una escala muy pequeña.

El proceso de extracción de datos en la web puede ser infinitamente complejo en la medida que se realice manualmente, actuamente existen miles y millones de sitios web que contienen millones de vinculos a otros sitios web, ahora pensemos que cada segundo se crean nuevos sitios web, al mismo tiempo que son vinculados a otros sitios web, la web está en constante crecimiento podríamos decir que tiene vida, surge entonces la necesidad de crear sistemas inteligentes que permitan o faciliten la toma de decisiones.

Entonces nace el concepto de Web Scraping, se han desarrollado una gran variedad de herramientas y soluciones que permiten analizar un sitio web para configurar un proceso de extracción automatica de datos desde un sitio web navegando por todos sus vinculos según sea la necesidad específica del proyecto a realizar.

Web Scraping tiene dos componentes básicos que permiten la extracción automática de datos, estos corresponden al Crawler y el Scraper.

El Crawler tambien se conoce como la araña o el 'Spider', consiste en una inteligencia artificial que tiene el proposito de navegar en internet para indexar documentos, buscar contenido y seguir los enlaces entre documentos, explorando como lo haria un humano pero de forma automatica con una gran velocidad de procesamiento que permite visitar y navegar atraves de cientos y miles de documentos en muy poco tiempo.


Crawler
Crawler


El Scraper consiste en el algoritmo o herramienta que se especializa en la extracción de datos desde una pagina web, usando las etiquetas HTML y clases CSS para identificar los datos que deseamos obtener, un Scraper puede ser tan simple como obtener el título de cada página web o muy complejo según las necesidades del proyecto.



Scraper
Scraper

Bueno esto es todo lo que quería compartir, como dije al inicio esto es solo una corta introducción a Web Scraping.

Estaré ampliando un poco más el contenido relacionado con esta introducción en los próximos días, semanas o meses.


martes, 26 de abril de 2016

Servidor LAMP Linux Apache PHP MySQL PhpMyAdmin en Ubuntu 16.04 LTS Xenial Xerus

Bueno en esta entrada quiero compartir como instalar un Servidor LAMP en un Sistema Operativo tipo Linux basado en Debian como Ubuntu 16.04 LTS Xenial Xerus.

Cuando queremos aprender el desarrollo de Aplicaciones Web necesitamos las siguientes herramientas de software instaladas en nuestro equipo que vamos a usar para desarrollo, los programas que se requieren son los siguientes:

  • Apache
  • PHP
  • MySQL
  • PhpMyAdmin (Opcional)

El acrónimo LAMP surge de la combinación de palabras Linux Apache PHP MySQL por eso en Internet podemos encontrar información adicional de como instalar un Servidor Web LAMP.


NOTA: En esta entrada sólo se da a conocer los programas a instalar y su proceso de instalación, en el mundo real es necesario después de instalar realizar el proceso de configuración de cada programa en cuanto a los aspectos de seguridad de los mismos.



Seguir los siguientes pasos de instalación:



  • Paso 1usuario@linux~$ sudo apt-get install apache2
Al terminar la instalación de Apache se crea un directorio raíz para el localhost donde podemos crear proyectos web, este directorio es /var/www/html

Cuando ingresamos desde un navegador web al directorio raíz de apache desde la siguiente URL http://localhost/ nos muestra una pagina con información de la instalación de Apache.

Apache
Apache

  • Paso 2usuario@linux~$ sudo apt-get install php
Cuando finaliza la instalación de PHP podemos probar si funciona correctamente invocando la función phpinfo(); desde un archivo .php que debemos guardar en el directorio raíz de Apache, el archivo debe contener el siguiente código:


<?php phpinfo(); ?>



  • Paso 3usuario@linux~$ php -v
Verificar la versión de php que tenemos instalada en el sistema, la versión mas reciente al momento de escribir esta entrada es la versión 7 de php.




  • Paso 4usuario@linux~$ sudo apt-get install libapache2-mod-php7.0
Instalar el modulo php versión 7 para el servidor Apache.

Cuando se ejecuta el archivo desde localhost de Apache en un Navegador Web se muestra una pagina con información sobre la versión de PHP que se ha instalado ademas de información del Servidor Web.


php7
PHP Versión 7

  • Paso 5usuario@linux~$ sudo apt-get install mysql-server
Durante la instalación de MySQL el sistema nos pregunta si deseamos configurar una contraseña para el usuario root, esto es opcional, si queremos podemos dejarlo en blanco, claro que en el mundo real debemos darle una contraseña.


  • Paso 6usuario@linux~$ sudo apt-get install phpmyadmin php-mbstring php-gettext
Cuando se realiza la instalación de PhpMyAdmin nos pregunta por la contraseña del usuario root de MySQL para poder ingresar desde un Navegador Web en la aplicación web de PhpMyAdmin.

Se deben Activar  las extensiones de php mcrypt y mbstring en PHP:

usuario@linux~$ sudo phpenmod mcrypt
usuario@linux~$ sudo phpenmod mbstring

Para hacer uso de PhpMyAdmin desde un navegador web debemos ingresar localmente a la siguiente URL http://localhost/phpmyadmin/ donde nos solicita el usuario y contraseña que tenemos configurado en MySQL.


phpmyadmin
PhpMyAdmin


Sugerencia
:

Cuando ya han terminado de instalar todos los programas para un Servidor LAMP cada vez que se crean archivos en el directorio raíz de Apache /var/www/html/ es necesario tener permisos de administrador ya que el propietario del directorio html es el usuario root, podemos modificar esto cambiando el propietario del directorio html a nuestro usuario, de esta forma podemos crear y modificar archivos sin necesidad de tener permisos de usuario root.


jueves, 30 de octubre de 2014

Estándar HTML5 Finalmente Terminado Por W3C


Estándar HTML5 W3C
Estándar HTML5 W3C


Por fin The World Wide Web Consortium - W3C - ha publicado la recomendación final del estándar HTML5, finalmente las especificaciones del Hypertext Markup Language - HTML - en la versión 5 se han terminado. El formato se ha definido para construir paginas y aplicaciones web en aras de una Plataforma Web Abierta.

El estándar HTML5 brinda a gran escala e independientemente del navegador web y el dispositivo la capacidad de ejecutar contenido Multimedia sin necesidad de plugins.

Se han desarrollado las especificaciones para comunicación en tiempo real, pagos electrónicos y desarrollo de aplicaciones mas seguras y que protejan la privacidad.

El "boom" del estándar HTML5 se ha venido viendo desde hace un par de años, pero la realidad es que este proyecto lo han estado desarrollando en la W3C desde hace ya mas de 8 años visualizando la era de la masificación de los dispositivos móviles, aplicaciones en Internet y la nube.


Caracteristicas de HTML5
Características de HTML5

Muchos desarrolladores han adoptado este estándar desde sus inicios, pero con el riesgo a que algunos navegadores web no adoptaran algunas especificaciones del estándar, pero a partir de ahora gracias a la W3C podemos estar seguros que los navegadores web deben adoptar este estándar.

Como ha mencionado el director del W3C Tim Berners-Lee “We expect to be able to share photos, shop, read the news, and look up information anywhere, on any device." no cabe duda que el nuevo estándar de HTML es un paso importante para reducir la Brecha Digital y un avance importante para el Internet de las Cosas.

Hoy en día el estándar HTML5 es un fundamento al concepto "Escribe una vez, Ejecuta donde quieras" que en desarrollo de software se conoce como Cross-platform el cual consiste en desarrollar aplicaciones de software que se ejecuten en multiples plataformas.

Actualmente los desarrolladores de aplicaciones móviles para múltiples plataformas como Android, Apple iOS y Windows Phone utilizan HTML5 junto con CSS3 y JavaScript para construir sus aplicaciones.

El W3C espera que con este nuevo estándar se construya lo que se conoce como Plataforma Web Abierta y sea el inicio para el desarrollo de aplicaciones multi-plataforma neutras.


El siguiente video muestra el trabajo de W3C para el Futuro de la Web:





Referencias:
The World Wide Web Consortium - http://goo.gl/zuZVrI
PCWorld - http://goo.gl/DdujZ4

viernes, 22 de agosto de 2014

Instalar Joomla 2.5 Método Convencional Paso a Paso

En esta entrada quiero publicar los pasos a seguir para la instalación del famoso CMS (Sistema de Gestión de Contenido) Joomla en su versión 2.5 en un ambiente de ejecución web LAMP sobre un sistema operativo Linux basado en Debian, en este caso uso Ubuntu 14.04 LTS.

Comparto el método de instalación convencional de Joomla 2.5 aunque esta versión solo tenga soporte hasta finales de este año (31 de Diciembre de 2014) porque en ciertas situaciones es necesario trabajar con esta versión en especifico, como me ha sucedido a mi.


Antes de continuar estos son los requerimientos:
  • PHP 5.2.4+
  • MySQL 5.0.4+
  • Apache 1.3+

En una entrada anterior expliqué la Instalación paso a paso de un Servidor Web LAMP sobre Ubuntu 14.04 LTS, pueden ver como se hace la instalación de PHP, MySQL y Apache en la siguiente entrada:




Una vez instalado el servidor web LAMP en Ubuntu y confirmado que cumplimos los requerimientos, podemos descargar Joomla 2.5 y ejecutar su instalación.




Instalación


Paso 1: Descomprimimos el archivo .zip el cual genera un directorio con los archivos de Joomla a este directorio le cambiamos el nombre, en mi caso, para seguir el paso a paso lo nombro como Joomla, aunque para casos de la vida real solo necesitamos el contenido del directorio que descomprimimos.


Paso 2: Copiamos el directorio Joomla en el directorio raíz de Apache, en mi caso este directorio está en /var/www/html


Paso 3: Para iniciar la instalación, desde el navegador web, accedemos a la URL http://localhost/Joomla/ desde donde se ejecuta el menú de instalación de Joomla paso a paso.


Paso 4: La primer pantalla nos pregunta el idioma que deseamos usar.

Idioma Joomla
Idioma Joomla

Paso 5: En la siguiente pantalla se realiza una comprobación de requerimientos y configuraciones recomendadas para poder instalar Joomla, en mi caso y es posible que les pueda suceder, muestra los siguientes errores:

Error Joomla
Error Joomla

Error 1:
configuration.php Escribible

Para solucionar este error, se hace lo siguiente: debemos crear un archivo con permisos de escritura dentro del directorio Joomla es decir en /var/www/html/Joomla/ así: touch configuration.php y agregamos permisos de escritura al archivo: chmod o+w configuration.php

Error 2:
Área de intercambio ('buffer') de salida

Para solucionar este error, se hace lo siguiente: debemos modificar el archivo: sudo vi /etc/php5/apache2/php.ini y modificar la linea output_buffering = 4096 cambiando el 4096 por off quedando así: output_buffering = off

Guardamos el archivo y debemos reiniciar Apache: sudo /etc/init.d/apache2 restart

Solucionados estos dos errores procedemos a comprobar nuevamente:

Solucion Error Joomla
Solución Error Joomla


Paso 6: En este paso nos muestran la licencia y se asume que aceptamos la licencia para usar Joomla.


Paso 7: Todo el contenido que generamos en Joomla se almacena en una Base de Datos, en este paso nos pregunta algunos parámetros de conexión a la base de datos de MySQL.

Aprovechamos el uso de phpMyAdmin para crear una base de datos dedicada a Joomla:

Crear DB phpMyAdmin
Crear DB phpMyAdmin

Finalmente configuramos los parámetros de conexión a la base de datos de MySQL:

Base de Datos Joomla
Base de Datos Joomla

Paso 8: En este paso nos pregunta la configuración para conexiones FTP esto lo podemos saltar por que es opcional y estamos trabajando localmente.


Paso 9: En este paso realizamos la configuración general del sitio que estamos creando en Joomla, algunos parámetros son opcionales, pero para usuarios principiantes es recomendado instalar los ejemplos predeterminados antes de continuar.


Paso 10: Si todo fue correctamente configurado este seria el paso final donde nos informa que debemos eliminar el directorio de instalación que está dentro del directorio de Joomla.

Finalizar Joomla
Finalizar Joomla
Si al hacer click en el botón Eliminar carpeta de instalación se genera un error, debemos eliminar esta carpeta manualmente, debemos eliminar la carpeta /var/www/html/Joomla/installation/

Finalmente podemos comprobar que todo esta correctamente instalado visitando el sitio que creamos en Joomla y accediendo al panel de administración del sitio de Joomla:


URL del sitio construido en Joomla: http://localhost/Joomla/

Sitio Web Joomla
Sitio Web Joomla

URL del panel de administración del sitio construido en Joomla: http://localhost/Joomla/administrator/

Admin Joomla
Admin Joomla
Panel Admin Joomla
Panel Admin Joomla


Listo eso seria todo lo necesario para instalar y configurar Joomla en su versión 2.5 para empezar a trabajar generando contenido, actualizando las plantillas y podemos instalar plugins según sea el caso.



Ahora si toda esta carreta que han leído no la entienden o no les queda claro, pueden ver el siguiente video donde se muestra lo anteriormente escrito:



domingo, 27 de abril de 2014

Instalar Apache MySQL PHP phpMyAdmin En Linux Ubuntu Debian



Para cierto trabajo de desarrollo web, requiero hacer uso de un servidor web, por lo que tengo la necesidad de instalar en mi maquina con SO Ubuntu algunos programas que se usan usualmente en un servidor web, ademas de ser más practico trabajar localmente un proyecto web antes de subir a un entorno de producción.


Los programas que requiero instalar son los siguientes:
  • Apache
  • MySQL
  • PHP
  • phpMyAdmin

Estos programas los requiero instalar en una maquina que corre un sistema operativo Linux basado en Debian, mas exactamente Ubuntu 14.04 LTS, algunas personas en la web le llaman a esto "Instalación de servidor web LAMP" (Linux Apache MySQL PHP)


NOTA: En esta entrada sólo se da a conocer los programas a instalar y su proceso de instalación, en el mundo real es necesario después de instalar realizar el proceso de configuración de cada programa en cuanto a los aspectos de seguridad de los mismos, espero hacer otra entrada donde mencione algunos.


En una terminal o consola de linux ejecutar los siguiente comandos:

  • Apache
prompt:~$ sudo apt-get install apache2

  • PHP
prompt:~$ sudo apt-get install php5

  • MySQL
prompt:~$ sudo apt-get install mysql-server mysql-client

  • phpMyAdmin
prompt:~$ sudo apt-get install phpmyadmin



Al instalar Apache se crea un directorio en el cual podemos crear los proyectos web, este directorio es:

/var/www/html/


El directorio pertenece al usuario root por lo que debemos cambiar el propietario a nuestro usuario:

prompt:~$ sudo chown -R sebaxtian /var/www/html/


El anterior comando asigna como propietario del directorio /var/www/html/ y de forma recursiva -R a los archivos y subdirectorios al usuario sebaxtian.

Para probar que la instalación de PHP funciona correctamente podemos crear un archivo info.php en el directorio /var/www/html/ que tenga la siguiente linea de código:

<?php phpinfo(); ?>

La cual muestra información sobre la versión de php que se ha instalado.


Ahora para probar que todo se ha instalado correctamente, en un navegador web accedemos a las siguientes URL:

  • Apache

  • phpMyAdmin

  • PHP



Listo eso seria todo, ya tenemos instalados los programas básicos para que podamos empezar a desarrollar nuestros proyectos web en nuestro servidor local.

El siguiente vídeo muestra el proceso:



sábado, 5 de abril de 2014

CodePen Útil Herramienta Para Desarrolladores Front-End

Esta entrada la quiero hacer para presentar una útil herramienta web que he descubierto por medio de alguna comunidad que sigo en Google+ o tal vez la he descubierto en algún tweet.

CodePen es muy interesante para las personas y desarrolladores web Front-End que necesiten hacer pruebas al "vuelo", experimentar nuevas características de HTML5, CSS3, JavaScript o simplemente se quiera jugar un rato con estas tecnologías de la web 2.0 y dejar volar la imaginación.

Lo interesante de esta herramienta es que podemos crear un perfil para crear y almacenar nuestros desarrollos o como lo llaman en CodePen crear un "Pen", ademas permite vincular nuestro perfil a una cuenta de GitHub y agregar nuestros perfiles en las redes sociales como LinkedIn, Google+, Twitter entre otros.

Otra de las características interesantes de CodePen es que podemos compartir cada Pen para que otros usuarios puedan comentar y votar, al igual que podemos generar un código o plantilla para insertar en otro sitio web o nuestro blog. También existe la posibilidad de ver otros "Pens" publicados y si nos interesa alguno podemos realizar un "Fork" para modificar, mejorar o crear un nuevo Pen.

Las posibilidades son casi infinitas, por lo tanto si quieren conocer más sobre esta útil herramienta pueden visitar el sitio web: http://codepen.io/

Hace unos días he creado mi perfil en CodePen, me ha parecido una muy buena herramienta, les comparto mi primer Pen:

See the Pen Test Pong by Sebastian Rios Sabogal (@Sebaxtian) on CodePen.

domingo, 15 de septiembre de 2013

Enviar Sitemap de Blogger a Google

En mi proceso de pasar a la perpetuidad en el mundo de Blogger, veo la necesidad de posicionar mi blog en los buscadores lo que hoy en dia llaman SEO (no confundir con CEO), quien manda la parada hoy en día y ha evolucionado a pasos agigantados es Google.

Buscando información en la web encontré muchas cosas por hacer para posicionar un blog y cualquier contenido en general en los buscadores, una de las cosas por hacer es enviar a Google el Sitemap de nuestro blog, así los robots de Google (Googlebot) pueden indexar mas fácilmente nuestro blog, es recomendable hacerlo cuando recién hemos creado el blog ya que no tenemos enlaces de otras paginas que apunten a nuestro blog.

Primero que todo debemos tener en cuenta que tenemos activada la configuración del Feed de nuestro sitio, si no es así o por si las moscas podemos revisarlo en la configuración de Blogger. En el menú Configuración -> Otros y verificamos que esté permitido el Feed del blog, también podemos ajustar algunas opciones de como se muestra nuestro Feed.

Configuración Feed
Configuración Feed Blogger
Una de las cosas que no sabia era como usar el Feed de nuestro blog en un lector de feeds (soy algo ignorante en el tema), encontré información en la ayuda de Blogger donde explican como usar el URL del Feed, allí me enteré que existen dos formatos o estándares para el uso de feeds, uno es el Atom y el otro es el RSS yo decidí usar el estandar Atom 1.0.

La ayuda la encuentran aquí, URL del Feed de Blogger

De la ayuda solo me interesa el URL del Feed completo del sito:
  • Atom 1.0: http://nombredelblog.blogspot.com/feeds/posts/default
Para el siguiente paso solo necesitamos tener en cuenta: feeds/posts/default

Lo siguiente para hacer es ingresar a las Herramientas para webmasters de Google y para el blog que tenemos debemos buscar el menú Rastreo -> Sitemaps para probar y añadir el Sitemap de nuestro blog.

Rastreo Sitemaps
Rastreo Sitemaps
En la imagen se muestra un Sitemap que yo agregué donde se muestra el número de paginas enlazadas en nuestro Sitemap donde el tipo de contenido en este caso se clasifica como Web, también podemos ver el estado de indexación de nuestro Sitemap una vez creado aparece Pendiente y esto puede tardar unos días hasta que los robots de Google lo indexen.

Para agregar el Sitemap de nuestro sitio o blog solo debemos hacer click en el botón rojo "Añadir o Probar Sitemaps" y pegar el URL de nuestro Feed que copiamos anteriormente:

Añadir Sitemap
Añadir Sitemap
Para terminar el proceso se hace click en el botón "Enviar sitemap" y con esto solo nos queda esperar para que los robots de Google procesen nuestro Sitemap.


Eso es todo, como tarea queda leer las múltiples opciones que ofrece las herramientas para desarrolladores de Google por que el proceso de posicionamiento en los buscadores de Google no solo involucra hacer el envío de Sitemap, esto es solo un engrane del todo el proceso SEO.