代理后面的Python urllib urlretrieve

时间:2013-07-03 13:53:07

标签: python urllib2

我查看了urllib的文档,但我在代理上找到的所有内容都与urlopen有关。但是,我想从给定的URL下载PDF并将其存储在本地,但使用某个代理服务器。到目前为止我的方法没有用:

import urllib2

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

错误为AttributeError: FancyURLopener instance has no attribute 'urlretrieve'

2 个答案:

答案 0 :(得分:4)

我相信你可以这样做:

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()

因为urllib2没有urlretrieve 您可以使用urlopen来获得相同的效果

你必须让文档混淆因为urllib2也没有FancyURLopener这就是你收到错误的原因

处理代理等时

urllib2要好得多。

了解更多信息,请点击此处Urllib2 Docs

答案 1 :(得分:1)

你有一个正确的想法,你只是缺少一些things

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