使用线程一次多个http请求

时间:2017-12-10 07:52:47

标签: python http

是否可以一次预先形成多个http请求以获得更快的请求时间,我想我可以使用线程来这样做,因此我的问题是这是否可能,如果是这样的话,那就是最有效的方法来解决我的问题,如果是这样,那么你将如何在python中做这样的解决方案?谢谢

1 个答案:

答案 0 :(得分:0)

这是多线程使用的最具代表性的例子。

import threading
import urllib2
import time

start = time.time()
urls = ["http://www.google.com", "http://www.apple.com", "http://www.microsoft.com", "http://www.amazon.com", "http://www.facebook.com"]

def fetch_url(url):
    urlHandler = urllib2.urlopen(url)
    html = urlHandler.read()
    print "'%s\' fetched in %ss" % (url, (time.time() - start))

threads = [threading.Thread(target=fetch_url, args=(url,)) for url in urls]
for thread in threads:
    thread.start()
for thread in threads:
    thread.join()

但是你应该知道,服务可以很容易地禁止大量的同时请求