Obteniendo Proxys anónimos de samair.ru
Siempre es útil disponer de una lista de proxys "anónimos" para hacer alguna que otra prueba, buscando de qué forma obtener una buena lista sin tener que consultar las páginas que los publican, encontré el siguiente script: http://pastebin.com/f64134167. Después de varias pruebas comprobé que la lista de proxys de http://www.samair.ru/proxy/time-01.htm no se obtenía correctamente.
En la web de Samair.ru comprobé que habían incluido un código en javascript que genera un diccionario con los puertos en los que está ubicado el proxy, así que el script que estaba usando fallaba.
Para resolverlo desarrolle el siguiente:
#!/usr/bin/env python
# Author: freed0m at hacktimes.com
# Visit us at: http://www.hacktimes.com
import re, sys, urllib2, random
#conf
fichero = 'samair-proxy.txt'
site = "http://www.samair.ru/proxy/time-"
# Regex
regex1 = """<script src="http://samair.ru:81/js/m.js" type="text/javascript"></script><script type="text/javascript">
(.*)</script></head>"""
regex2 = """([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})<script type="text/javascript">document.write\(":"([\+a-z]+)"""
fich = open(fichero,'a')
# Main
for i in range(1,11):
if i<10:
cad = "0" + str(i)
else:
cad = str(i)
url = site + cad + ".htm"
try:
print ("Obteniendo proxys de la direccion %s" %(url))
pet = urllib2.urlopen(url)
contenido = pet.read()
match = re.search(regex1,contenido)
claves = match.group(1)
valores = claves.split(";")
diccionario = {}
for v in valores:
if len(v.split("="))>1:
diccionario[v.split("=")[0]] = v.split("=")[1]
sustituir = re.findall(regex2,contenido)
for s in sustituir:
IP = s[0]
rango = s[1].split('+')
Puerto = ''
for p in rango:
if p:
Puerto = Puerto + diccionario[p]
proxy = IP + ":"+ Puerto
fich.write(proxy + "\n")
except urllib2.URLError as e:
print ("Error Obteniendo Proxys: %s" %(e))
Este script procesa cada url, obtiene el diccionario del javascript para generar los puertos correctamente y guarda un txt con los proxys obtenidos.
Esperamos que os resulte útil. Puedes descargarlo aquí: http://www.hacktimes.com/files/htimes_proxy.py


Comentarios
gracias por tu respuesta y por el script ya lo arregle, funciona perfecto
@rever si consultas en Google el error veras que se trata de Microsoft ForeFront, que impide realizar dichas peticiones al exterior, verifica que no existe dicho producto en tu red o aplica una configuración adecuada. Siempre puedes probarlo desde otra red, no parece tener nada que ver con el propio script. Saludos.
baje el script y cuando lo corro me da un error de 502 en cada pagina que intenta y el error lo describe como "forefront tmg denied the specified uniform resource locator" quisiera saber que estoy haciendo mal soy nuevo a este lenguaje, gracias por tu respuesta y por compartir el codigo
Este comentario ha sido eliminado.
@Anonimo: Buenas, tienes que usar un interprete de python, consulta la dirección: http://www.python.org/ Para ejecutarlo simplemente python htimes_proxy.py
como uso ese script porque tampoco puedo ver la lista de proxys
Muy util :) Thx.
Añadir comentario