Как обработать это перенаправление загрузки с помощью скрипта Python для загрузки видео? - PullRequest
0 голосов
/ 15 марта 2012

Я хочу скачать видео с использованием скрипта Python по этой ссылке: https://www.coursera.org/algo/lecture/download.mp4?lecture_id=4

Но я попробовал много способов, и оказалось, что мой скрипт Python не может правильно обрабатывать перенаправление, как это делает мой браузер Chrome.Мой браузер может разрешить ссылку на: http://d19vezwu8eufl6.cloudfront.net/algo1/recoded_videos%2F%5Bfe646c5e%5D%20guiding.mp4 Однако приведенный ниже код не может вернуть правильный ресурс.

Ниже приведен код Python, использованный и заимствованный из другой темы "python-urllib-urllib2-httplib-confusion "после того, как я попробовал urlretrieve и другие нормальные способы загрузки.

url = 'https://www.coursera.org/algo/lecture/download.mp4?lecture_id=4'

import cookielib

request = urllib2.Request(url)

response = urllib2.urlopen(request)

cookies = cookielib.CookieJar()

cookies.extract_cookies(response,request)

cookie_handler= urllib2.HTTPCookieProcessor( cookies )

redirect_handler= urllib2.HTTPRedirectHandler()

opener = urllib2.build_opener(redirect_handler,cookie_handler)

response = opener.open(request)

print response.geturl()

1 Ответ

0 голосов
/ 15 марта 2012

Использование requests облегчает эту задачу, поскольку она обрабатывает перенаправление, аутентификацию, файлы cookie и т. Д.

import requests
the_url = 'https://www.coursera.org/algo/lecture/download.mp4?lecture_id=4'
username = 'username'
password = 'secret'

r = requests.get(the_url, auth=(username, password))
r.content # your result
...