如何获取网页文件的真实URL。(Python)
我注意到,有时候网上的音频文件会有一个“假”的网址。
http://garagaeband.com/3252243
这个网址会302重定向到真正的网址:
http://garageband.com/michael_jackson4.mp3
我的问题是……当我拿到这个假网址时,怎么才能从响应头中获取真正的网址呢?
现在,这是我用来读取文件头信息的代码。我不确定这段代码能否帮我实现我的目标。怎么才能从响应头中解析出“真实”的网址呢?
import httplib
conn = httplib.HTTPConnection(head)
conn.request("HEAD",tail)
res = conn.getresponse()
这个网址有一个302重定向:
http://www.garageband.com/mp3cat/.UZCMYiqF7Kum/01_No_pierdas_la_fuente_del_gozo.mp34 个回答
0
你需要查看服务器的回复,发现你得到了一个302(找到),然后从回复的头信息中提取出真正的链接,接着用这个新的链接去获取资源。
2
Mark Pilgrim 在他的书《Dive Into Python3》中建议使用 httplib2,因为它能更聪明地处理很多事情,比如重定向。
>>> import httplib2
>>> h = httplib2.Http()
>>> response, content = h.request("http://garagaeband.com/3252243")
>>> response["content-location"]
"http://garageband.com/michael_jackson4.mp3"
9
使用 urllib.getUrl() 方法
补充说明: 抱歉,我有一段时间没做这个了:
import urllib
urllib.urlopen(url).geturl()
举个例子:
>>> f = urllib2.urlopen("http://tinyurl.com/oex2e")
>>> f.geturl()
'http://www.amazon.com/All-Creatures-Great-Small-Collection/dp/B00006G8FI'
>>>