Publicado el Deja un comentario

80 Python. WebScraping

Iniciacion a webscraping, obteniendo datos de una web usando Python.

Puedes acceder a la web de pruebas en este enlace.
Es aconsejable tener una base de html, puedes consultar una introduccion aqui

El codigo python disponible en github.

from urllib.request import urlopen
from urllib.error import HTTPError
from urllib.error import URLError
from bs4 import BeautifulSoup

try: 
    html = urlopen(“https://ticoticotaa.es/ejemplowebscraping.php”)
except HTTPError as e:
    print(e)
except URLError:
    print(“Servidor caido o dominio incorrecto”)
else:
    resultado = BeautifulSoup(html.read(),”html5lib”)
    #print(resultado.title)
    articulo = resultado.findAll(“div”,{“class”:[“articulo”]})
    #print(articulo)
    descripcion=resultado.findAll(“div”,{“class”:[“descripcion”]})
    precio=resultado.findAll(“div”,{“class”:[“precio”]})
    descripcionLista=[]
    precioLista=[]
    for desc in descripcion:
        descripcionLista.append(desc.getText().strip())
    print(descripcionLista)
    for prec in precio:
        precioLista.append(prec.getText().strip())
    print(precioLista)
    for i in range(len(descripcionLista)):
        if int(precioLista[i])<150:
            print(descripcionLista[i]+’ : ‘+precioLista[i]+’ €’)
            print(‘ *** esta por debajo de 150 € *** ‘)
        else:
            print(descripcionLista[i]+’ : ‘+precioLista[i]+’ €’)  



   

Please follow and like us:
Publicado el Deja un comentario

74 Python. Json

Con Python podemos pasar diccionarios a formato Json y de Json a diccionarios, para ello importamos la libreria json, veamos un ejemplo explicativo.

import json
dato={‘nombre’:’portatil’,’color’:’rojo’,’precio’:560}
print(type(dato))
print(dato)
print(dato[‘nombre’])
#convertimos a json
datoJson=json.dumps(dato)
print(type(datoJson))
print(datoJson)
print(datoJson[0])
#pasamos de json a diccionario
dato2=json.loads(datoJson)
print(type(dato2))
print(dato2)

Please follow and like us:
Publicado el Deja un comentario

70 Python. Diccionarios, listas y tuplas

Estructuras de datos con Python, diccionarios, listas y tuplas.
En cuanto a estas 3 estructuras de datos, debemos tener en cuenta que las tuplas no permiten modificaciones de sus datos, las listas si.
Los diccionarios se componen de items con pares de valores (clave, valor).
Veamos un ejemplo de cada uno:

#Diccionario

dic={‘rojo’:’red’,’blanco’:’white’}

print(type(dic))

print(dic)
#Lista

lis=[‘rojo’,’amarillo’]

print(type(lis))

print(lis)
#Tupla, ojo es inmutable

tup=(‘verde’,’negro’)

print(type(tup))

print(tup)

#La siguiente asignacion dara error

tup[1]=’celeste’

print(tup)

Empaquetado y desempaquetado de tupla:

#empaquetadox=6y=3punto=x,yprint(punto)#desempaquetadox,y=puntoprint(x)print(y)

Veamos como crear una lista de multiplos de 3 dentro del intervalo del 1 al 20:

#Multiplos de 3
lista=[num*3 for num in range(1,21)]
print(lista)

Please follow and like us:
Publicado el Deja un comentario

34 Python. Agenda de contactos parte 5 Borrar Datos

Creamos la funcion de borrado de registros.

Agenda

#AGENDA PYTHON
#CON SQLITE
#IMPORTA MODULO
from tkinter import *
from BDatos import *
from tkinter import messagebox
#VARIABLES
listado=[]
ANCHO=560
ALTO=540
POSX=400
POSY=400
anchoAlto=(str(ANCHO)+”x”+str(ALTO))
posicionX=”+”+str(POSX)
posicionY=”+”+str(POSY)
colorVentana=”blue”
colorFondo=”blue”
colorLetra=”white”
#funcion pruebas
def mostrarMensaje():
print(“Pruebas”)
#FUNCIONES
def mensaje(titulo,texto):
messagebox.showinfo(titulo,texto)
def listar():
if(len(listado)>0):
#borra lista
listado.clear()
conexion=sqlite3.connect(“agenda.db”)
consulta=conexion.cursor()
consulta.execute(“SELECT id,nombre,apellidos,telefono,email from agenda”)
for i in consulta:
id=(i[0])
nombre=(i[1])
apellidos=(i[2])
telefono=(i[3])
email=(i[4])
listado.append(i)
listado.sort()
conexion.close()
try:
textLista.delete(1.0,END)
except:
mensaje(“Listado”,”error en listado”)
textLista.insert(INSERT,”idtNombrettApellidosttTelefonon”)
for elemento in listado:
id=elemento[0]
nombre=elemento[1]
apellidos=elemento[2]
telefono=elemento[3]
textLista.insert(INSERT,id)
textLista.insert(INSERT,”t”)
textLista.insert(INSERT,nombre)
textLista.insert(INSERT,”t”)
textLista.insert(INSERT,”t”)
textLista.insert(INSERT,apellidos)
textLista.insert(INSERT,”t”)
textLista.insert(INSERT,”t”)
textLista.insert(INSERT,telefono)
textLista.insert(INSERT,”t”)
textLista.insert(INSERT,”n”)

def limpiar():
ID.set(“”)
nombre.set(“”)
apellidos.set(“”)
telefono.set(“”)
email.set(“”)
def guardar():
no=nombre.get()
ap=apellidos.get()
tf=telefono.get()
em=email.get()
if((no==””)or(ap==””)):
mensaje(“Guardar”,”Faltan datos”)
else:
limpiar()
creaTabla()
inserta(no,ap,tf,em)
mensaje(“Guardar”,”Datos guardados”)
listar()
def modificar():
id=ID.get()
no=nombre.get()
ap=apellidos.get()
tf=telefono.get()
em=email.get()
if((no==””)or(ap==””)or(id==””)):
mensaje(“Modificar”,”Faltan datos”)
else:
try:
limpiar()
modifica(id,no,ap,tf,em)
mensaje(“Modificar”,”Contacto modificado”)
listar()
except:
mensaje(“Modificar”,”Error al modificar”)
def borrar():
try:
id=ID.get()
if(id==””):
mensaje(“Borrar”,”Debes insertar el codigo”)
else:
borra(id)
limpiar()
listar()
mensaje(“Borrar”,”Mensaje borrado”)
except:
mensaje(“Error”,”Error al borrar, inserta codigo”)
#VENTANA
ventana=Tk()
ventana.config(bg=colorVentana)
ventana.geometry(anchoAlto+posicionX+posicionY)
ventana.title(“Agenda”)
#Variables cajas
ID=IntVar()
nombre=StringVar()
apellidos=StringVar()
telefono=StringVar()
email=StringVar()
#Widgets
etiquetaID=Label(ventana,text=”ID:”).place(x=50,y=50)
cajaID=Entry(ventana,textvariable=ID).place(x=130,y=50)
etiquetaNombre=Label(ventana,text=”Nombre:”).place(x=50,y=90)
cajaNombre=Entry(ventana,textvariable=nombre).place(x=130,y=90)
etiquetaApellidos=Label(ventana,text=”Apellidos:”).place(x=50,y=130)
cajaApellidos=Entry(ventana,textvariable=apellidos).place(x=130,y=130)
etiquetaTelefono=Label(ventana,text=”Telefono:”).place(x=50,y=170)
cajaTelefono=Entry(ventana,textvariable=telefono).place(x=130,y=170)
etiquetaEmail=Label(ventana,text=”Email:”).place(x=50,y=210)
cajaEmail=Entry(ventana,textvariable=email).place(x=130,y=210)
textLista=Text(ventana)
textLista.place(x=50,y=240,width=400,height=200)
#Botones
botonAñadir=Button(ventana,text=”Añadir”,command=guardar).place(x=150,y=500)
botonBorrar=Button(ventana,text=”Borrar”,command=borrar).place(x=200,y=500)
botonBuscar=Button(ventana,text=”Buscar”,command=mostrarMensaje).place(x=250,y=500)
botonModificar=Button(ventana,text=”Modificar”,command=modificar).place(x=300,y=500)
listar()
ventana.mainloop()



BDatos

#SQLITE
import sqlite3
#CREA TABLA
def creaTabla():
conexion=sqlite3.connect(“agenda.db”)
consulta=conexion.cursor()
sql=”””CREATE TABLE IF NOT EXISTS agenda(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
nombre VARCHAR(20) NOT NULL, apellidos VARCHAR(20) NOT NULL, telefono VARCHAR(14) NOT NULL,
email VARCHAR(20) NOT NULL)”””
if(consulta.execute(sql)):
print(“Tabla creada”)
else:
print(“No se pudo crear la tabla”)
conexion.close()
#INSERTAR DATOS
def inserta(nombre,apellidos,telefono,email):
conexion=sqlite3.connect(“agenda.db”)
consulta=conexion.cursor()
datos=(nombre,apellidos,telefono,email)
sql=”””INSERT INTO agenda(nombre,apellidos,telefono,email) VALUES (?,?,?,?)”””
if(consulta.execute(sql,datos)):
print(“Datos guardados”)
else:
print(“No se pudo guardar el dato”)
conexion.commit()
conexion.close()
def modifica(id,nombre,apellidos,telefono,email):
conexion=sqlite3.connect(“agenda.db”)
consulta=conexion.cursor()
consulta.execute(“””UPDATE agenda SET nombre = ?,apellidos = ?,
telefono = ?,email = ? WHERE id= ?”””,(nombre,apellidos,telefono,email, str(id)))
consulta.close()
conexion.commit()
conexion.close()
#BORRAR DATOS
def borra(id):
conexion=sqlite3.connect(“agenda.db”)
consulta=conexion.cursor()
consulta.execute(“DELETE from agenda WHERE id=”+str(id))
consulta.close()
conexion.commit()
conexion.close()

 

Please follow and like us:
Publicado el Deja un comentario

28 Python. Ejemplo lista y funcion

En este video vemos como obtener el valor mayor y menor de una lista de datos usando dos funciones definidas por nosotros, en las cuales recorremos la lista dada con un bucle “for” y vamos realizando la comparacion con el condicional “if”.

#Lista Funcion
#Valor menor y mayor
def ValorMenor(lista):
    menor=lista[0]
    for x in range(1,len(lista)):
        if lista[x]<menor:
            menor=lista[x]
    return menor
def ValorMayor(lista):
    mayor=lista[0]
    for x in range(1,len(lista)):
        if lista[x]>mayor:
            mayor=lista[x]
    return mayor
#cargamos de valores una lista
datos=[1,4,2,7,89,34,25,100,6,8,98]
print(“El valor mayor es : “,ValorMayor(datos))
print(“El valor menor es : “,ValorMenor(datos))

Please follow and like us:
Publicado el Deja un comentario

19 Python. Consulta de datos en Sqlite

Consultamos los datos insertados en el video anterior en la base de datos Sqlite.

#SQLITE
import sqlite3

#INSERTAR DATOS
nombre=input(“Dime el nombren”)
apellidos= input(“Dime el apellidon”)
telefono=input(“Dime el telefonon”)
#CONECTAMOS
conexion=sqlite3.connect(“agenda.db”)
#CURSOR
consulta=conexion.cursor()
#DATOS
datos=(nombre,apellidos,telefono)
sql=”””
INSERT INTO agenda(nombre,apellidos,telefono) VALUES (?,?,?)”””
if(consulta.execute(sql,datos)):
    print(“datos guardados”)
else:
    print(“error al guardar datos”)
consulta.close()
conexion.commit()
conexion.close()
#CONSULTA DE DATOS INSERTADOS
conexion=sqlite3.connect(“agenda.db”)
consulta=conexion.cursor()
consulta.execute(“SELECT id,nombre,apellidos,telefono from agenda”)
for i in consulta:
    print(“ID= “, i[0])
    print(“NOMBRE= “, i[1])
    print(“APELLIDOS= “, i[2])
    print(“TELEFONO= “, i[3],”n”)
conexion.close()

Please follow and like us: