Tăng tốc thu thập thông tin về cơ bản là trường hợp sử dụng chính của Eventlet. Nó rất nhanh - chúng tôi có một ứng dụng phải đạt 2.000.000 url trong vài phút. Nó sử dụng giao diện sự kiện nhanh nhất trên hệ thống của bạn (epoll, nói chung), và sử dụng greenthreads (được xây dựng trên đầu trang của coroutines và rất rẻ tiền) để làm cho nó dễ dàng để viết.
Dưới đây là an example from the docs:
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)
Đây là một điểm khởi đầu khá tốt cho việc phát triển một trình thu thập đầy đủ tính năng. Vui lòng truy cập #eventlet trên Freenode để yêu cầu trợ giúp.
[cập nhật: Tôi đã thêm một phức tạp hơn recursive web crawler example vào tài liệu. Tôi thề rằng nó đã có trong các tác phẩm trước khi câu hỏi này được hỏi, nhưng câu hỏi cuối cùng đã truyền cảm hứng cho tôi để hoàn thành nó. :)]
liên kết thứ hai không còn hoạt động. –