En este post la solución a uno de los retos de programación de la plataforma WeChall.
Este reto tiene el título "Can you read me" y mi valoración sobre su dificultad es: ★★★☆☆.
Su enunciado dice lo siguiente:
A friend and me have a bet running, that you won't beat his OCR program in scanning text out of images.
His average scan time is 2.5 seconds, can you beat that?.
Y nos dan una imagen como la siguiente:
Solución: utilizo el siguiente script de Python.
from PIL import Image
from io import BytesIO
from urllib.parse import quote as urlencode
from bs4 import BeautifulSoup
import pytesseract
import requests
s = requests.session()
url = 'https://www.wechall.net/'
image_url = url+'challenge/can_you_readme/gimme.php'
solution_url = url+'challenge/can_you_readme/index.php'
payload = {'username': 'tu usuario', 'password': 'tu contraseña'}
s.post(url,payload)
r2 = s.get(image_url)
#Obtener el texto
captcha = Image.open(BytesIO(r2.content))
captcha.save('read_me.png')
print('Resolviendo Captcha')
captcha_text = pytesseract.image_to_string(captcha)
print('Texto extraido',captcha_text)
#Enviar la solucion
r3 = s.get(solution_url + '?action=Answer&solution=' + urlencode(captcha_text)).text
r3 = BeautifulSoup(r3, 'html.parser')
if r3.select('.gwf_errors'):
exit(r3.select('.gwf_errors li')[0].text)
print(r3.select('.gwf_messages li')[0].text)
Ejecuto este script:
Y, como se observa en la figura anterior, la respuesta es correcta.
Este reto tiene el título "Can you read me" y mi valoración sobre su dificultad es: ★★★☆☆.
Su enunciado dice lo siguiente:
A friend and me have a bet running, that you won't beat his OCR program in scanning text out of images.
His average scan time is 2.5 seconds, can you beat that?.
Y nos dan una imagen como la siguiente:
Solución: utilizo el siguiente script de Python.
from PIL import Image
from io import BytesIO
from urllib.parse import quote as urlencode
from bs4 import BeautifulSoup
import pytesseract
import requests
s = requests.session()
url = 'https://www.wechall.net/'
image_url = url+'challenge/can_you_readme/gimme.php'
solution_url = url+'challenge/can_you_readme/index.php'
payload = {'username': 'tu usuario', 'password': 'tu contraseña'}
s.post(url,payload)
r2 = s.get(image_url)
#Obtener el texto
captcha = Image.open(BytesIO(r2.content))
captcha.save('read_me.png')
print('Resolviendo Captcha')
captcha_text = pytesseract.image_to_string(captcha)
print('Texto extraido',captcha_text)
#Enviar la solucion
r3 = s.get(solution_url + '?action=Answer&solution=' + urlencode(captcha_text)).text
r3 = BeautifulSoup(r3, 'html.parser')
if r3.select('.gwf_errors'):
exit(r3.select('.gwf_errors li')[0].text)
print(r3.select('.gwf_messages li')[0].text)
Ejecuto este script:
Comentarios
Publicar un comentario