orschiro
orschiro

Reputation: 21725

Python urllib urlretrieve behind proxy

I looked into the documentation of urllib but all I could find on proxies was related to urlopen. However, I want to download a PDF from a given URL and store it locally but using a certain proxy server. My approach so far which did not work:

import urllib2

proxies = {'http': 'http://123.96.220.2:81'}
opener = urllib2.FancyURLopener(proxies)
download = opener.urlretrieve(URL, file_name)

The error is AttributeError: FancyURLopener instance has no attribute 'urlretrieve'

Upvotes: 3

Views: 11501

Answers (2)

Serial
Serial

Reputation: 8045

I beleive you can do something like this:

import urllib2

proxy = urllib2.ProxyHandler({'http': '123.96.220.2:81'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)

with open('filename','wb') as f:
    f.write(urllib2.urlopen(URL).read())
    f.close()

since urllib2 doesnt have urlretrieve you can just use urlopen to get the same effect

you must have got the docs confused becuase urllib2 also doesnt have FancyURLopener thats why youre getting the error

urllib2 is much better when handling proxies and such

for more info look here Urllib2 Docs

Upvotes: 4

John
John

Reputation: 13699

You've got the right idea you're just missing a few things.

proxy = urllib2.ProxyHandler({'http': '127.0.0.1'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
urllib2.urlopen('http://www.google.com')

Upvotes: 1

Related Questions