загрузка данных питоном (urllib, urllib2) - PullRequest
2 голосов
/ 24 июня 2011

У меня есть ссылка типа this , прямо в mp3-файл. Поэтому, когда я помещаю его в свой браузер, в основном спрашивает, хочу ли я загрузить файл, однако, когда я делаю то же самое с python, используя следующий код:

> data = urllib2.urlopen("http://www23.zippyshare.com/d/44123087/497548/Lil%20Wayne%20ft.%20Eminem%20-%20Drop%20The%20World.mp3".read())

Я буду перенаправлен на другую ссылку, как это. Поэтому вместо данных MP3 я получаю HTML-код для

http://www23.zippyshare.com/v/44123087/file.html'

есть идеи? спасибо

Ответы [ 2 ]

2 голосов
/ 24 июня 2011

urllib2 прозрачно обрабатывает перенаправление.Возможно, вы захотите увидеть, что на самом деле делает сервер, когда он представляет такое перенаправление, а также позволяет загружать.Возможно, вы захотите подкласс обработчик перенаправления и посмотреть, какое свойство заголовка дает вам URL-адрес, и использовать urlretrieve для его загрузки.

Установка файлов cookie, попытка явных попыток может быть хорошей попыткойа также.

import cookielib, urllib2
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.open('yourmp3filelink')
0 голосов
/ 24 июня 2011

Ваша ссылка перенаправляет на веб-страницу HTML, скорее всего из-за истечения времени ожидания запроса на загрузку.Так часто работают эти сайты загрузки: вы никогда не получаете статическую ссылку на загрузку, только временно назначенную ссылку.

Я предполагаю, что получить эту статическую ссылку с помощью этого сайта невозможно.Вы должны знать, откуда этот файл на самом деле .

Так что нет, все в порядке с вашим кодом на Python;только ваши источники.

...