Je veux télécharger quelques pages HTML de Je serais intéressé à visiter plusieurs instances de cette URL et à enregistrer le fichier comme [ID] .html à l'aide de différents points IP / Ports proxy. p>
Je veux utiliser différents agents utilisateur et je souhaite randomiser les temps d'attente avant chaque téléchargement. P>
Quelle est la meilleure façon de faire cela? urllib2? Pycurl? boucle? Que préférez-vous pour la tâche à la main? P>
S'il vous plaît conseiller. Merci gars! P>
3 Réponses :
Utilisez UNIX TOOL Vous pouvez voir wget (1) Homme pour plus d'informations. p> WGET CODE>. Il a la possibilité de spécifier l'agent utilisateur personnalisé et le délai entre chaque récupération de la page. P>
C'est un bon début, merci! --Random-whatt peut être utilisé. Pas si sûr de la mise en œuvre du proxy cependant. Des idées?
Je n'ai utilisé que wget code> pour le scrapplement de base, désolé, je ne peux pas vous donner plus d'informations sur la proxy de la commande.
Utilisation d'un proxy dans Wget: setenv http_proxy = proxy.example.com:8080 ; wget --proxy-user = foo --proxy-mot de passe = barre -user-agent = "Frobzilla / 1.1" [URL]
Utilisez quelque chose comme:
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())
Si vous ne voulez pas utiliser des proxies ouverts, Checkout proxymesh , qui fait la rotation / randomisation IP pour vous. < / p>
Pourquoi voudriez-vous randomiser les agents utilisateur?
Je ne veux pas révéler que je suis celui que je télécharge la page. Pour inciter, si nous utilisons différents navigateurs au hasard, cela fera consolider mon anonymat, que dites-vous?