Jan-21-2017, 10:03 AM
@scriptso you write a little messy
You are right that setting user-agent header can solve it for urllib.
But the clear message is that urllib should not be used,when we have Requests.
Can fix urlretrieve() bye using opener.retrieve().
That can take user-agent header.
You are right that setting user-agent header can solve it for urllib.
But the clear message is that urllib should not be used,when we have Requests.
Can fix urlretrieve() bye using opener.retrieve().
That can take user-agent header.
>>> import urllib.request >>> img = 'https://wallpapers.wallhaven.cc/wallpapers/full/wallhaven-293122.jpg' >>> urllib.request.urlretrieve(img, '1.jpg') Traceback (most recent call last): urllib.error.HTTPError: HTTP Error 403: Forbidden >>> # Fix it >>> opener = urllib.request.FancyURLopener({}) >>> opener.version = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.69 Safari/537.36' >>> opener.retrieve(img, '1.jpg') ('1.jpg', <http.client.HTTPMessage object at 0x038F2210>)