Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Seria posible programar un bot con python
#1
Que simule que un humano esta haciendo apuestas en freebitco.in , es curiosidad , aunque si fuera posible lo intentaria , ya que es mas facil aprender cosas nevas con un obletivo.
Responder
#2
Sí, hay varias librerías en Python que permiten interactuar con webs. Por ejemplo, mechanize es útil para manejar formularios o probar aplicaciones web. Selenium es un proyecto más grande, que provee herramientas para controlar el navegador web y automatizar tareas.

De todas formas, alguna web que no quiera ser "automatizada" requerirá al usuario resolver algún que otro captcha justamente para evitar este tipo de programas.

Saludos.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
Esta web tiene captcha para recoger satoshis , pero no para el juego del multiplicador que seria lo que yo quisiera intentar
Responder
#4
Entonces no habría problema. Tené en cuenta que mechanize no puede detectar cambios al documento HTML hechos vía JavaScript. Así que dependiendo de lo que quieras hacer tendrás que optar por una opción u otra.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#5
Y buscando , buscando he encontrado un supuesto bot que resuelve el captcha de esta pagina , pero me falta una libreria y con pip no la encuentra
Responder
#6
Bueno, no necesariamente todas las librerías de Python tienen que estar disponibles en PyPI, o bien están registradas con algún otro nombre.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#7
Este es el codigo , a ver si me podeis echar una mano con la libreria :
Código:
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re
import os
from PIL import Image

from tesserocr import PyTessBaseAPI

driver = webdriver.Chrome()  
driver.maximize_window()
driver.get('https://freebitco.in/')
driver.find_element_by_xpath("html/body/div[1]/div/nav/section/ul/li[10]/a").click()
Select(driver.find_element_by_id("signup_page_captcha_types")).select_by_visible_text("Solve Media")
time.sleep(2)
scheight = .1
while scheight < 9.9:
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % scheight)
    scheight += .01        
def execute():  
    driver.execute_script("javascript:ACPuzzle.reload('')")
    time.sleep(9)
    driver.save_screenshot('driver.png')
    image_file = Image.open("driver.png") # open colour image
    image_file= image_file.convert('L') # convert image to monochrome - this works
    image_file.save('result.png')

    images = ['result.png' ]
    with PyTessBaseAPI() as api:
        for img in images:
            api.SetImageFile(img)
            pignore = (api.GetUTF8Text())
            ignore=  (api.AllWordConfidences())
            pignore = str(pignore)
            
    matchObj = re.search( r'Please Enter (.*)', pignore, re.M|re.I)
    if matchObj:
        game = matchObj.group(1)

        driver.execute_script("document.getElementById('login_form_btc_address').value+='example@email.com'")
        driver.find_element_by_id("login_form_password").send_keys("password")
        driver.find_element_by_id("adcopy_response").send_keys(game)
        driver.find_element_by_id("login_button").click()
        time.sleep (5)
    else:
        execute()

execute()

def brutal():
    driver.get('https://freebitco.in/?op=home')
    Select(driver.find_element_by_id("free_play_captcha_types")).select_by_visible_text("Solve Media")
    time.sleep(10)

    scheight = .1
    while scheight < 2:
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % scheight)
        scheight += .01
brutal()

def execute2():
    driver.save_screenshot('driver.png')
    image_file = Image.open("driver.png") # open colour image
    image_file= image_file.convert('L') # convert image to monochrome - this works
    #image_file= image_file.convert('1') # convert image to black and white
    image_file.save('result.png')
    
    images = ['result.png' ]
    with PyTessBaseAPI() as api:
        for img in images:
            api.SetImageFile(img)
            pignore = (api.GetUTF8Text())
            ignore=  (api.AllWordConfidences())
            pignore = str(pignore)
    matchObj1 = re.search( r'Please Enter. (.*)', pignore, re.M|re.I)
    if matchObj1:
        game = matchObj1.group(1)
        driver.find_element_by_id("adcopy_response").send_keys(game)
        frame1 = driver.find_element_by_id("free_play_form_button")
        driver.execute_script("$(arguments[0]).click();", frame1)
        print ("Waiting 60 minutes for next claim")
        time.sleep(3600)
        brutal()
    else:
        matchObj2 = re.search( r'Please Enter, (.*)', pignore, re.M|re.I)
        if matchObj2:
            game2 = matchObj2.group(1)
            driver.find_element_by_id("adcopy_response").send_keys(game2)
            frame2 = driver.find_element_by_id("free_play_form_button")
            driver.execute_script("$(arguments[0]).click();", frame2)
            ("Waiting 60 minutes for next claim")
            time.sleep(3600)
            brutal()
        else:
            matchObj3 = re.search( r'Ple ase Enter, (.*)', pignore, re.M|re.I)
            if matchObj3:
                game3 = matchObj3.group(1)
                driver.find_element_by_id("adcopy_response").send_keys(game3)
                frame3 = driver.find_element_by_id("free_play_form_button")
                driver.execute_script("$(arguments[0]).click();", frame3)
                ("Waiting 60 minutes for next claim")
                time.sleep(3600)
                brutal()
            else:
                driver.execute_script("javascript:ACPuzzle.reload('')")
                time.sleep(10)
                execute2()

execute2()

No me ha resaltado el codigo , que he hecho mal ?
Responder
#8
No tienes que dejar espacio entre los corchetes para poder resaltar el código.

¿Cuál es el paquete que no has podido instalar? tesserocr parece estar disponible únicamente para Linux, pero puedes probar utilizando pip install tesserocr, aunque tiene varios requerimientos que puedes consultar en esa misma página.

Saludos.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#9
El primer error me lo da PIL
Responder
#10
Para instalar Pillow puedes utilizar pip install Pillow o bien descargar un instalador para Windows desde aquí.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 3 invitado(s)