計劃是這樣的:併發下載 - Python
我下載了一個網頁,收集了在DOM中解析的圖像列表,然後下載這些圖像。在此之後,我會遍歷圖像以評估哪個圖像最適合表示網頁。
問題是圖像是一個一個下載的,這可能需要一段時間。
這將是巨大的,如果有人能在關於該主題的一些方向指向我。
幫助將非常感激。
計劃是這樣的:併發下載 - Python
我下載了一個網頁,收集了在DOM中解析的圖像列表,然後下載這些圖像。在此之後,我會遍歷圖像以評估哪個圖像最適合表示網頁。
問題是圖像是一個一個下載的,這可能需要一段時間。
這將是巨大的,如果有人能在關於該主題的一些方向指向我。
幫助將非常感激。
Here是一篇關於使用url抓取的線程的文章。
加速爬取基本上是Eventlet的主要用例。速度非常快 - 我們有一個應用程序需要幾分鐘才能達到200萬個URL。它利用了系統上最快速的事件接口(通常是epoll),並且使用greenthread(它是建立在協程之上並且非常便宜),以便於編寫。
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)
這是用於開發功能更全面履帶一個不錯的起點。隨時可以登陸Freenode的#eventlet尋求幫助。
[更新:我向文檔添加了更復雜的recursive web crawler example。我發誓,在這個問題被問到之前,它正在進行中,但這個問題終於激勵我完成它。 :)]
第二個鏈接不再起作用。 – 2017-10-17 11:47:26