Mensajes: 101
Temas: 29
Registro en: Mar 2017
Reputación:
0
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.
Mensajes: 1.249
Temas: 3
Registro en: Feb 2016
Reputación:
70
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!
Mensajes: 101
Temas: 29
Registro en: Mar 2017
Reputación:
0
Esta web tiene captcha para recoger satoshis , pero no para el juego del multiplicador que seria lo que yo quisiera intentar
Mensajes: 1.249
Temas: 3
Registro en: Feb 2016
Reputación:
70
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!
Mensajes: 101
Temas: 29
Registro en: Mar 2017
Reputación:
0
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
Mensajes: 1.249
Temas: 3
Registro en: Feb 2016
Reputación:
70
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!
Mensajes: 101
Temas: 29
Registro en: Mar 2017
Reputación:
0
31-03-2017, 08:03 AM
(Última modificación: 31-03-2017, 12:57 PM por Francisco.)
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 ?
Mensajes: 1.249
Temas: 3
Registro en: Feb 2016
Reputación:
70
31-03-2017, 12:59 PM
(Última modificación: 31-03-2017, 01:01 PM por Francisco.)
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!
Mensajes: 101
Temas: 29
Registro en: Mar 2017
Reputación:
0
El primer error me lo da PIL
Mensajes: 1.249
Temas: 3
Registro en: Feb 2016
Reputación:
70
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!
|