我正在使用Python编写一个相对简单的网络爬虫,但是我想使用异步网络库以便同时获取多个页面。我看到了他们网站上的示例,但当我应用相同的逻辑时,对于~1000/2000个URL和~200个网页,性能会变慢。(大部分URL来自不同的域,并且我已经将它们混合了)。
使用Eventlet爬取这么多页面的最快方法是什么,我可以得到什么样的速度?(类似于每秒抓取次数)。
以下是示例:
以下是示例:
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):
return urllib2.urlopen(url).read()
pool = eventlet.GreenPool()
for body in pool.imap(fetch, urls):
print "got body", len(body)