我尝试使用Python urllib2
通过其网址下载MP3文件。
mp3file = urllib2.urlopen(url)
output = open(dst,'wb')
output.write(mp3file.read())
output.close()
我收到urllib2.HTTPError: HTTP Error 403: Forbidden
错误。
尝试urllib
也会失败,但是会默默无闻。
urllib.urlretrieve(url, dst)
但是,如果我使用wget
,我可以成功下载该文件。
我已经注意到" Difference between Python urllib.urlretrieve() and wget"中提到的两种方法之间的一般差异,但它们似乎并不适用于此。
wget
是否正在协商urllib2
无法协商的权限?如果是,那么,我如何在urllib2
中复制它?
答案 0 :(得分:1)
可能是服务器端的东西 - 例如阻止python用户代理。尝试使用wget
用户代理:Wget/1.13.4 (linux-gnu)
。
在Python 2中:
import urllib
# Change header for User-Agent
class AppURLopener(urllib.FancyURLopener):
version = "Wget/1.13.4 (linux-gnu)"
url = "http://www.example.com/test_file"
fname = "test_file"
urllib._urlopener = AppURLopener()
urllib.urlretrieve(url, fname)