2013-06-05 8 views
5

Ich möchte Antwortzeit erhalten, wenn ich urllib verwenden. Ich habe unten Code gemacht, aber es ist mehr als Reaktionszeit. Kann ich die Zeit mit urllib bekommen oder eine andere Methode haben?Antwortzeit für Urlib in Python

import urllib 
import datetime 

def main(): 
    urllist = [ 
     "http://google.com", 
    ] 

    for url in urllist: 
     opener = urllib.FancyURLopener({}) 
     try: 
      start = datetime.datetime.now() 
      f = opener.open(url) 
      end = datetime.datetime.now() 
      diff = end - start 
      print int(round(diff.microseconds/1000)) 
     except IOError, e: 
      print 'error', url 
     else: 
      print f.getcode(), f.geturl() 

if __name__ == "__main__": 
    main() 
+0

Was ist "Reaktionszeit"? Ist es Zeit, DNS-Anfrage zu machen, Tcp-Verbindung herzustellen, HTTP-Header zu senden, Header zu empfangen, HTML-Seite zu lesen? – jfs

+0

@ J.F.Sebastian Ich meine, Reaktionszeit ist Latenzzeit. Auch Ping-Zeit ist in Ordnung. – Edward

Antwort

14

Sparen Sie sich etwas Mühe und verwenden Sie das Modul requests. In seinen Antworten gibt es ein datetime.timedelta Feld namens "verstrichen", mit dem Sie wissen, wie lange die Anfrage dauerte.

>>> import requests 
>>> response = requests.get('http://www.google.com') 
>>> print response.elapsed 
0:00:01.762032 
>>> response.elapsed 
datetime.timedelta(0, 1, 762032) 
Verwandte Themen