views:

101

answers:

3

I want to get the size of an http://.. file before I download it. I don't know how to use http request.

Thanks!

+5  A: 

The HTTP HEAD method was invented for scenarios like this (wanting to know data about a response without fetching the response itself). Provided the server returns a Content-Length header (and supports HEAD), then you can find out the size of the file (in octets) by looking at the Content-Length returned.

obeattie
+6  A: 
import urllib2
f = urllib2.urlopen("http://your-url")
size= f.headers["Content-Length"]
print size
Uku Loskit
HTTP HEAD is better option. So you don't need download the payload.
manuel aldana
+2  A: 

Not all pages have a content-length header. In that case, the only option is to read the whole page:

len(urllib2.urlopen('http://www.google.com').read());
Sjoerd