No Content-Length header, nor length property

Kev Dwyer kevin.p.dwyer at gmail.com
Wed Jul 8 01:28:07 EDT 2015


zljubisic at gmail.com wrote:

> Hi,
> 
> if I put the link in the browser, I will be offered to save the file to
> the local disk.
> 
> If I execute these few lines of code, I will get None:
> 
> import urllib.request
> 
> url = 'http://radio.hrt.hr/prvi-program/aod/download/118467/'
> site = urllib.request.urlopen(url)
> print('File size:', site.length)
> 
> Why I can't get the size of this particular file?
> On other servers, the same procedure would return file size in bytes, but
> not for this file?
> 
> Does it depend on server itself, or there is a way to get remote file size
> before downloading?
> 
> Regards.


Hello,

urlopen returns an HttpResponse 
object(https://docs.python.org/3/library/http.client.html#httpresponse-objects).  You need to call read() on the return value to get the page 
content, or you could consider the getheader method to check for a Content-
Length header.

Hope that helps,

Kev




More information about the Python-list mailing list