Python urllib赢得';由于权限原因,无法下载文件,但wget将
我正在尝试使用Python的Python urllib赢得';由于权限原因,无法下载文件,但wget将,python,http,urllib2,wget,Python,Http,Urllib2,Wget,我正在尝试使用Python的urllib2通过其URL下载一个MP3文件 mp3file = urllib2.urlopen(url) output = open(dst,'wb') output.write(mp3file.read()) output.close() 我得到了一个urllib2.HTTPError:HTTP错误403:probled错误。 尝试urllib也会失败,但会以静默方式进行 urllib.urlretrieve(url, dst) 但是,如果我使用wget,我可
urllib2
通过其URL下载一个MP3文件
mp3file = urllib2.urlopen(url)
output = open(dst,'wb')
output.write(mp3file.read())
output.close()
我得到了一个urllib2.HTTPError:HTTP错误403:probled
错误。
尝试urllib
也会失败,但会以静默方式进行
urllib.urlretrieve(url, dst)
但是,如果我使用wget
,我可以成功下载该文件
我注意到了“”中提到的两种方法之间的一般差异,但它们似乎不适用于这里
wget
是否在协商urllib2
无法协商的权限?如果是这样的话,那么在urllib2
中复制什么以及如何复制它?可能是服务器端的事情,例如阻塞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)
这完全取决于服务器,您是否尝试过
wget--verbose
查看发生了什么?您是否尝试过添加标题:似乎wget
的默认输出级别是verbose,因此当显式给出标志时,它不会给我任何额外的信息。我会试着在头球上玩。。。