miércoles, 23 de enero de 2013

Generar lista proxys

A muchos les gusta navegar seguros/anónimos por la red y claro eso se consigue conectándose a un proxy. Para hacer la tarea menos engorrosa y de la forma más limpia sin tener que andar navegando por la red en busca de direcciones IP de proxys. Podremos usar este script que nos genera un fichero TXT con el listado de los proxys de la página samir.ru
#!/usr/bin/env python
import re, sys, urllib2, random

fichero = 'samair-proxy.txt'
site = "http://www.samair.ru/proxy/socks"

regex1 = """<script src="/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')

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))