Le plan est ceci: p>
Je télécharge une page Web, collectez une liste d'images analysées dans le DOM, puis téléchargez-les. Après cela, je voudrais parcourir les images afin d'évaluer quelle image est la mieux adaptée pour représenter la page Web. P>
problème est que les images sont téléchargées 1 par 1 et cela peut prendre assez de temps. P>
Ce serait génial si quelqu'un pourrait me diriger dans une certaine direction concernant le sujet. P>
L'aide serait très appréciée. P>
4 Réponses :
ici est un article sur le threading qui utilise la récupération de l'URL comme exemple. P>
tandis que le filetage est certainement une possibilité, je suggérerais plutôt ASYNCORE CODE>
- Il y a un excellent exemple Ici qui montre exactement la récupération simultanée de deux URL (facile à généraliser à n'importe quelle liste d'URL!). P>
Effacement de l'accélération de Crawling est fondamentalement cas d'utilisation principale d'événement . C'est profondément rapide - nous avons une application qui doit frapper 2 000 000 URL dans quelques minutes. Il utilise l'interface d'événement la plus rapide sur votre système (Epoll, généralement) et utilise GreeHreads (qui sont construites sur les corouts et sont très peu coûteux) pour faciliter l'écriture.
Voici Un exemple de Docs : P>
urls = ["http://www.google.com/intl/en_ALL/images/logo.gif", "https://wiki.secondlife.com/w/images/secondlife.jpg", "http://us.i1.yimg.com/us.yimg.com/i/ww/beta/y3.gif"] import eventlet from eventlet.green import urllib2 def fetch(url): body = urllib2.urlopen(url).read() return url, body pool = eventlet.GreenPool() for url, body in pool.imap(fetch, urls): print "got body from", url, "of length", len(body)