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.
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.
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.
Responder
#7
Este es el codigo , a ver si me podeis echar una mano con la libreria :
  1. # -*- coding: utf-8 -*-
  2. from selenium import webdriver
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.common.keys import Keys
  5. from selenium.webdriver.support.ui import Select
  6. from selenium.common.exceptions import NoSuchElementException
  7. from selenium.common.exceptions import NoAlertPresentException
  8. import unittest, time, re
  9. import os
  10. from PIL import Image
  11.  
  12. from tesserocr import PyTessBaseAPI
  13.  
  14. driver = webdriver.Chrome()
  15. driver.maximize_window()
  16. driver.get('https://freebitco.in/')
  17. driver.find_element_by_xpath("html/body/div[1]/div/nav/section/ul/li[10]/a").click()
  18. Select(driver.find_element_by_id("signup_page_captcha_types")).select_by_visible_text("Solve Media")
  19. time.sleep(2)
  20. scheight = .1
  21. while scheight < 9.9:
  22. driver.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % scheight)
  23. scheight += .01
  24. def execute():
  25. driver.execute_script("javascript:ACPuzzle.reload('')")
  26. time.sleep(9)
  27. driver.save_screenshot('driver.png')
  28. image_file = Image.open("driver.png") # open colour image
  29. image_file= image_file.convert('L') # convert image to monochrome - this works
  30. image_file.save('result.png')
  31.  
  32. images = ['result.png' ]
  33. with PyTessBaseAPI() as api:
  34. for img in images:
  35. api.SetImageFile(img)
  36. pignore = (api.GetUTF8Text())
  37. ignore= (api.AllWordConfidences())
  38. pignore = str(pignore)
  39.  
  40. matchObj = re.search( r'Please Enter (.*)', pignore, re.M|re.I)
  41. if matchObj:
  42. game = matchObj.group(1)
  43.  
  44. driver.execute_script("document.getElementById('login_form_btc_address').value+='example@email.com'")
  45. driver.find_element_by_id("login_form_password").send_keys("password")
  46. driver.find_element_by_id("adcopy_response").send_keys(game)
  47. driver.find_element_by_id("login_button").click()
  48. time.sleep (5)
  49. else:
  50. execute()
  51.  
  52. execute()
  53.  
  54. def brutal():
  55. driver.get('https://freebitco.in/?op=home')
  56. Select(driver.find_element_by_id("free_play_captcha_types")).select_by_visible_text("Solve Media")
  57. time.sleep(10)
  58.  
  59. scheight = .1
  60. while scheight < 2:
  61. driver.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % scheight)
  62. scheight += .01
  63. brutal()
  64.  
  65. def execute2():
  66. driver.save_screenshot('driver.png')
  67. image_file = Image.open("driver.png") # open colour image
  68. image_file= image_file.convert('L') # convert image to monochrome - this works
  69. #image_file= image_file.convert('1') # convert image to black and white
  70. image_file.save('result.png')
  71.  
  72. images = ['result.png' ]
  73. with PyTessBaseAPI() as api:
  74. for img in images:
  75. api.SetImageFile(img)
  76. pignore = (api.GetUTF8Text())
  77. ignore= (api.AllWordConfidences())
  78. pignore = str(pignore)
  79. matchObj1 = re.search( r'Please Enter. (.*)', pignore, re.M|re.I)
  80. if matchObj1:
  81. game = matchObj1.group(1)
  82. driver.find_element_by_id("adcopy_response").send_keys(game)
  83. frame1 = driver.find_element_by_id("free_play_form_button")
  84. driver.execute_script("$(arguments[0]).click();", frame1)
  85. print ("Waiting 60 minutes for next claim")
  86. time.sleep(3600)
  87. brutal()
  88. else:
  89. matchObj2 = re.search( r'Please Enter, (.*)', pignore, re.M|re.I)
  90. if matchObj2:
  91. game2 = matchObj2.group(1)
  92. driver.find_element_by_id("adcopy_response").send_keys(game2)
  93. frame2 = driver.find_element_by_id("free_play_form_button")
  94. driver.execute_script("$(arguments[0]).click();", frame2)
  95. ("Waiting 60 minutes for next claim")
  96. time.sleep(3600)
  97. brutal()
  98. else:
  99. matchObj3 = re.search( r'Ple ase Enter, (.*)', pignore, re.M|re.I)
  100. if matchObj3:
  101. game3 = matchObj3.group(1)
  102. driver.find_element_by_id("adcopy_response").send_keys(game3)
  103. frame3 = driver.find_element_by_id("free_play_form_button")
  104. driver.execute_script("$(arguments[0]).click();", frame3)
  105. ("Waiting 60 minutes for next claim")
  106. time.sleep(3600)
  107. brutal()
  108. else:
  109. driver.execute_script("javascript:ACPuzzle.reload('')")
  110. time.sleep(10)
  111. execute2()
  112.  
  113. 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.
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í.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)