Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - natko

#1
Cita de: MCKSys Argentina en  4 Noviembre 2016, 18:24 PM
Creo que lo que estass buscando es hacer un OCR en python.

Te dejo unos links:

https://realpython.com/blog/python/setting-up-a-simple-ocr-server/

https://pypi.python.org/pypi/pytesseract

Espero te sirvan

Saludos!

Esto es exactamente lo que estaba buscando, muchas gracias, me abriste todo un panorama!

La palabra clave de esto era OCR jaja  ;D

Gracias y saludos!
#2
Cita de: engel lex en  4 Noviembre 2016, 16:46 PM
no va a ser tan facil... probablemente te toque hacer uso de opencv... y si es así te recmomiendo sentarte un dia completo a leer antes de si quiera tocarlo... tambien creo que python no es la mejor herramienta para esto

aqui temas al respecto

https://rosettacode.org/wiki/Percentage_difference_between_images#Python
https://gist.github.com/attilaolah/1940208
http://stackoverflow.com/questions/189943/how-can-i-quantify-difference-between-two-images
http://www.pyimagesearch.com/2014/09/15/python-compare-two-images/


puedes también buscar tutos en youtube (preferiblemente en inglés)

Muchas gracias por tu ayuda! Veré que puedo hacer :D

Saludos!
#3
Cita de: manri98 en  4 Noviembre 2016, 15:17 PM
Buenas tardes, tengo esta duda y os la presento para pediros ayuda.
Desde la facultad me han mandado hacer el juego de Cows and Bulls en Python.
Un requisito a implementar es que el usuario debe introducir un número de 4 dígitos entre el 1000 y el 9999, además no puede repetirse ninguno de ellos, mientras no se cumplan esas condiciones el programa pedirá que ingreses un numero nuevo. El número debo guardarse como un string.
Esto es lo que hice:
Código (python) [Seleccionar]

def askNumber():
   userNumber = "0"
   isCorrect = False
   while len(userNumber)!=4 and not isCorrect:
       userNumber = raw_input("Please type a 4 digit number between 1000 and 9999, do not repeat any digit: ")
       for i in range(1, len(userNumber)):
           if userNumber[i] == userNumber[i-1]:
               isCorrect = False
           else:
               isCorrect = True
       if userNumber[0] == "0":
           isCorrect = False
   return userNumber

El problema viene cuando por ejemplo introduzco "1223". isCorrect se vuelve False cuando compara los 2 doses pero se vuelve True al final del for. ¿Cómo podría hacer para que esto no sucediese? ¿Si introdujese un "break" entre las líneas 8 y 9 actuaría en el for o en while?
Gracias de antemano.


Hay muchas formas de resolverlo.. Puedes pasarlo a int, o en string utilizar la funcion string.count(caracter), que devuelve cuantas veces se encuentra 'caracter' en 'string'.. Tambien puedes utilizar la funcion 'set' que al pasarle un arreglo esta elimina todas las repeticiones y devuelve ese arreglo sin valores repetidos pero los valores desordenados, igualmente no actua sobre tu arreglo, sino que crea otro y lo devuelve, por eso mismo podemos hacer esto..

Utilizando set()
Código (python) [Seleccionar]

def askNumber():
userNumber = "0"
isCorrect = False
while len(userNumber)!=4 or not isCorrect:
userNumber = raw_input("Please type a 4 digit number between 1000 and 9999, do not repeat any digit: ")
if len(set(userNumber)) == 4 and userNumber[0] != "0":
isCorrect = True
else:
isCorrect = False
return userNumber



Ahora si no puedes utilizar funciones adicionales como yo en la facultad jaja, puedes hacer un while anidado a otro para comprobar si hay repeticion.. Algo asi..

Código (python) [Seleccionar]

def hayRepeticiones(cadena):
hayRepeticion = False

x = 0
while x < len(cadena) and not hayRepeticion:
y = x+1
while y < len(cadena) and not hayRepeticion:
if cadena[x] == cadena[y]:
hayRepeticion = True
y += 1
x += 1

return hayRepeticion

def askNumber():
userNumber = "0"
while (len(userNumber) != 4 or userNumber[0] == "0") or hayRepeticiones(userNumber): #Mientras sea invalido o haya repeticiones
userNumber = raw_input("Please type a 4 digit number between 1000 and 9999, do not repeat any digit: ")
return userNumber



Espero que te haya servido de ayuda!

Saludos!
#4
Hola a todos!

Hace un tiempo estoy intentando con Python 2.7 capturar los caracteres de una imagen y que los guarde en un documento de texto.

Lo que intento hacer sería algo similar a saltar un captcha, pero solo que mucho mas fácil, ya que en este caso las imágenes son solo de números, es decir hay 10 posibilidades por cada dígito, ademas de que estas son nítidas sin ningún tipo de alteración visual.

Aquí adjunto un ejemplo:

Lo necesito hacer si o si en Python..

Necesitaria el favor de si algiuen me podría guiar sobre que librerías utilizar o alguna recomendación sobre que leer.

Gracias ante todo  ;D

Saludos!

#5
Hacking / Re: Ingreso masivo a muchas webs
22 Octubre 2016, 22:51 PM
Ya logre hacer que tarde 30 minutos!

Muchas gracias a ambosss

Saludos!
#6
Hacking / Ingreso masivo a muchas webs
22 Octubre 2016, 19:43 PM
Hola a todos, soy nuevo en el foro :D

Primeramente quiero aclarar que no se si este tema se debe incluir aquí.. ya que también puede tener que ver con la programación..

Mi problema es el siguiente, yo tengo documento de texto que guarda 90mil links. Todos los links son del mismo sitio web, pero de distintos sectores de ese sitio web. De estos 90mil solo un link es correcto, los otros restantes dan error 404 ya que esa dirección del sitio web no existe.
Busqué pero no encontré ningún programa.. no se como se llama tampoco este tipo de programas :p

Lo que hice fue hacer un programa con python utilizando la librería 'urllib2' en python 2.7. El problema de este programa es que tarda demasiado, y no es por una limitación de internet que tarde, sino por un limitación del algoritmo (la librería). Aproximadamente tardaba 24hs para las 90mil links.. aunque claro, esto como máximo, ya que si lo encontrase antes pararía.

Luego probé con otra librería (descargada) llamada 'concurrent', también en python 2.7.. Este si va mas rápido. Aunque tengo un problema que cada 500 links probados el internet se corta unos pocos minutos y se generan algunos timeouts (estos links que devolvieron de error timeout se guardan en otro documento de texto para probarlos luego).. finalmente contando ese retraso los 90mil links tardarían como máximo 12hs..

Ahora mi pregunta final es, alguien conoce otra librería en python o algún lenguaje que pueda hacerlo mas rápido, o aún mejor un programa ya hecho que haga todo esto?

Desde ya gracias por las respuestas!

Saludos!