Ir al contenido principal

Ciclos en la programación, Scraping WEB con Python

Que tal espero se encuentren muy bien y esta semana se encuentren listos para aprender más de programación, decimos que en la vida hay ciclos, bueno pues en la programación también y cada ciclo se detiene hasta cumplir una condición igual que en la vida, si no haces las cosas diferentes seguirás en un  mismo ciclo.

¿que es un ciclo definido en programación?

En programación hay varias instrucciones en cada lenguaje para crear ciclos, bucles o iteraciones por ejemplo:

  • FOR
  • WHILE
  • DO
  • REPEAT
  • UNTIL

Vamos a explicar un poco más imaginen que van a su restaurante favorito y les dan unas tarjetas de lealtad y cada visita les van a dar un sello cuando cumplan 5 sellos les dan un 50% de descuento. Bueno es un ciclo vamos a verlo en instrucciones de seudocodigo

Mientras i < 5 entonces
  i = i + 1  /*aquí le decimos que i es la variable para ir contando las visitas*/
  Si i == 5 entonces /*validamos en que numero vamos*/
   "50% de descuento"
salida

Aquí se detiene el ciclo cuando i llega a 5 , cada vez que se entra al ciclo se llama iteración 

Hay veces que si hacemos mal nuestras condiciones o no entramos a los ciclos o se quedan siempre dentro del mismo ciclo a menos que tengas un propósito de prueba de algún sistema o que quieras medir la memoria o algo que lo justifique debe utilizarlos, por ejemplo un While(1) 


Otro ejemplo de un bucle es un número exponencial, porque le decimos multiplica un número hasta el exponente x

x³   donde x sea 7 , entonces en seudocódigo es:

x= 7
i=1
exp = 1
Mientras i  <= 3 entonces
  exp = exp * x
  i = 1 + 1
muestra exp.

Corrida a mano (esto es cuando tu en un papel o en tu cabeza o un archivo sigues la lógica de tu programa) 


Iteraciónn       x         i           exp
1 7 1 7
2 7 2 49
3 7 3 343

Un ejemplo en la vida de un programador, cuando necesitas realizar cálculos para aseguradoras o estimaciones de Actuarios. Hay otro ejemplo en matemáticas que es la sumatoria su símbolo es Σ y se expresa así:
funciones matematicas


Sumatoria es cuando vamos almacenando un valor por ejemplo la suma total del valor de inventario, la venta en un software de punto de venta (en un restaurante).  

Tenemos otros tipos de ciclos que se llaman recursivos que consiste en que se ejecuta el mismo ciclo dentro de él mismo, suena super loco y lo és, un ejemplo en matemáticas es un factorial, en lo profesional lo he utilizado en tabla abs_mstr y ps_mstr del ERP de QAD .

Otro ejemplo son las series de Fibonacci, fractales que son más enfocados a investigaciones o cálculos de graficación.
Todos estos casos son Funciones matemáticas .



Hay una instrucción que sirve para salir del ciclo si se llega a cumplir una condición, recuerden que nuestros programas siempre cumplen condiciones y realizan acciones en base a ellas, las instrucciones son:



BREAK

QUIT
LEAVE



Esta es otra forma de romper un ciclo o cumpliendo la condición inicial del ciclo o romperla con otra condición, ojala fuera así de fácil en nuestras vidas (o quizás si es así pero no lo vemos) .



Veamos un ejemplo en Python que fue un ejercicio en mi curso de Python for everybody en Coursera , el programa debe ingresar a una pagina WEB leer en pantalla que línea de la página se va a buscar y como tercer parámetro cuantas veces se va a entrar a buscar la página, es decir vamos a ir adentrándonos a las ligas de una página, digamos es como ir al explorador de archivos en nuestra computadora 


# To run this, you can install BeautifulSoup
# https://pypi.python.org/pypi/beautifulsoup4

import re
import urllib
from bs4 import BeautifulSoup
import ssl
var = ""


def recorrer1(link,counta,contados):
    html = urllib.urlopen(link).read()
    soup = BeautifulSoup(html, "html.parser")
    tags = soup('a')
    c1 = 1
    c2 = 1
    for tag in tags:
        if c1 == counta:
           #print(tag.get('href', None))
            html2 = urllib.urlopen(tag.get('href', None)).read()
            soup2 = BeautifulSoup(html2, "html.parser")
            return tag.get('href', None) 
        c1 = c1 + 1

# Ignore SSL certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
url = raw_input('Enter URL: ')
cont2 = int(raw_input('Enter count: '))
cont1 = int(raw_input('Enter position: '))
count3 = 1
# Retrieve all of the anchor tags
#url = 'http://py4e-data.dr-chuck.net/known_by_Fikret.html'
print "Retrieving: ",url
var = recorrer1(url,cont1,cont2)
print "Retrieving: ",var
while count3 < cont2 :
   print "Retrieving: ", recorrer1(var,cont1,cont2)
   var = recorrer1(var,cont1,cont2)
   count3 = count3 + 1


ejecución


BeautifulSoup

scraping web

La primera página, busca la línea 10 y así continua entrando a las páginas hasta que llega al contador 5


Este ejemplo que vimos o esta técnica se llama scraping web que normalmente es simular la navegación de un sitio por una persona, esta técnica es utilizada por los buscadores de páginas WEB.

Espero les haya gustado este post a mi en lo personal me gusto mucho, porque dicen que uno puede decir que sabe algo hasta que puede explicarlo. Gracias por leer el blog y compartirlo.

Comentarios

Entradas más populares de este blog

Graficar funciones en Python con dataframes

Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama  matplotlib  que nos sirve para gráfica funciones de  matemáticas. Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré la librería  Matplotlib Para instalar deben utilizar el comando PIP en 2.7 Instalando en Python 3.7 Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola python -m pip install -U pip python -m pip install -U matplotlib Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python. Programa para graficar en Python import matplotlib.pyplot as plt import numpy as np import math as mt def move_spines():     """Esta funcion divide pone al eje y en el valor      0 de x para dividir claramente los valores positivos y     negativos.&quo

Ejemplo Macro en Word

Hola: ¿Sabían que no solo en Excel pueden hacer Macros?  ¡¡¡También en Outlook, Word, Power Point,Access  es posible hacer Macros!!!  ☺️ Ya que Word, Excel, Power Point,Access son de familia Microsoft y Visual Basic también es que podemos programar nuestras macros en esta paquetería. Como hemos visto antes, para poder programar nuestras macros, necesitamos primero configurar la Barra de tareas de Developer o Desarrollador Seleccionan el Menu File>Options>Customize Ribbon o en Español Archivo>Opciones>barra de tareas Despues la parte de seguridad de las macros Menu File>Options>Trus Center o Archivo>Opciones>Centro de Seguridad y marcamos como se ve en la imagen, la cuarta opción y el combo Ejemplo Vamos hacer un ejemplo donde, tengamos que generar varios diplomas de fin de curso, pero con una lista de Nombres , entonces vamos a crear un nuevo archivo en Word y le vamos a guardar como tipo Macro  Tenemos una plantill

Ejemplo Python para leer imagen y transformarla en una matriz

Como hemos visto en otros post, Python nos permite hacer programas de manera más rápida, en esta ocasión quiero compartirles un ejemplo para leer un archivo de imagen y como convertirlo en una matriz o un arreglo. Aplicaciones Poder hacer ingeniería de datos, es decir poder convertir una misma imagen en diferentes todos y utilizarlos para machine learning para reconocimiento de gatos, para ello hay que mostrar muchas imágenes a nuestro modelo es decir entrenarlo, para ello hay que colocarle imágenes claras y imagenes que no sean tan claras por ejemplo, se pone la imagen original y se agrega "ruido" para que se vea en rojos, grises, verdes. Se pudo utilizar para un mapa , para poder ver datos a detalle Se puede aplicar para manipular imágenes, por ejemplo agregar efectos  Seguramente a ustedes se les pueden ocurrir más aplicaciones Les comparto el ejemplo de como hacerlo en Jupiter y para hacer el ejemplo voy a utilizar el logo del blog es una imagen de 500x500 pixeles Los Pas