2010-05-10 11 views
8

Quiero descargar algunas páginas HTML de http://abc.com/view_page.aspx?ID= La identificación es de una matriz de números diferentes.Filtrado inteligente de pantalla utilizando diferentes proxies y agentes de usuario al azar?

Me interesaría visitar varias instancias de esta URL y guardar el archivo como [ID] .HTML usando diferentes IP/puertos proxy.

Quiero utilizar diferentes agentes de usuario y quiero aleatorizar los tiempos de espera antes de cada descarga.

¿Cuál es la mejor manera de hacerlo? urllib2? pycURL? ¿rizo? ¿Qué prefieres para la tarea que tienes entre manos?

Por favor, asesorar. ¡Gracias chicos!

+2

¿Por qué quieres aleatorizar a los agentes de usuario? –

+2

No quiero revelar que soy yo el que está descargando la página. Para aumentarlo, si usamos diferentes navegadores al azar, eso solidificará mi anonimato, ¿qué dices? – ThinkCode

Respuesta

5

usar algo como:

import urllib2 
import time 
import random 

MAX_WAIT = 5 
ids = ... 
agents = ... 
proxies = ... 

for id in ids: 
    url = 'http://abc.com/view_page.aspx?ID=%d' % id 
    opener = urllib2.build_opener(urllib2.ProxyHandler({'http' : proxies[0]})) 
    html = opener.open(urllib2.Request(url, None, {'User-agent': agents[0]})).read() 
    open('%d.html' % id, 'w').write(html) 
    agents.append(agents.pop()) # cycle 
    proxies.append(proxies.pop()) 
    time.sleep(MAX_WAIT*random.random()) 
2

Utilice la herramienta de Unix wget. Tiene la opción de especificar user-agent personalizado y demora entre cada recuperación de la página.

Puede ver wget(1) man page para obtener más información.

+0

¡Es un buen comienzo, gracias! --random-wait se puede usar. Sin embargo, no estoy tan seguro acerca de la implementación del proxy. ¿Algunas ideas? – ThinkCode

+0

Solo he usado 'wget' para el desguace básico, así que lo siento, no puedo darle más información acerca de proxying con él. – pajton

+1

Usando un proxy en wget: setenv http_proxy = http: //proxy.example.com: 8080; wget --proxy-user = foo --proxy-password = bar --user-agent = "Frobzilla/1.1" [url] – wump

2

Si no desea utilizar proxies abiertos, la caja ProxyMesh, lo que hace la rotación IP/aleatorización para usted.