2012-03-15 2 views
0

나는이 링크에서 파이썬 스크립트를 사용하여 비디오를 다운로드하려면 : https://www.coursera.org/algo/lecture/download.mp4?lecture_id=4어떻게 파이어 폭스 스크립트를 사용하여 비디오를 다운로드 할 수있는이 특정 다운로드 리디렉션을 처리 할 수 ​​있습니까?

하지만 많은 방법을 시도하고, 내 크롬 브라우저처럼 제대로 리디렉션을 처리 할 수없는 내 파이썬 스크립트를 켜십시오. 브라우저에서 다음 링크를 확인할 수 있습니다. http://d19vezwu8eufl6.cloudfront.net/algo1/recoded_videos%2F%5Bfe646c5e%5D%20guiding.mp4 그러나 아래 코드는 올바른 리소스를 반환 할 수 없습니다.

다음은 urlretrieve 및 다른 일반적인 다운로드 방법을 사용해 본 후 "python-urllib-urllib2-httplib-confusion"이라는 다른 주제에서 사용 된 Python 코드입니다. 이 재 지정, 인증, 쿠키를 처리하기 때문에

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() 
+2

인증이 파이썬 코드 계정을합니까? – Blender

+0

정말 고맙습니다. 나는 결코 나의 계정을 로그 아웃하고 시도하는 것을 생각하지 않았다. – user1270736

+1

이를 위해서'mechanize' 모듈을 사용해보십시오. 조금 지나칠 수는 있지만 브라우저 상호 작용을 자동화하고 사용하기 쉽습니다. – Blender

답변

0

, requests이 용이하게 사용 등

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 
+0

위의 응답 개체는 어떻게 링크를 다운로드 할 수 있습니까? r.url 명령을 사용하여 URL을 검색하려고 할 때마다 모든 get은 인증을 요구하는 링크입니다. 나는 비디오의 링크를 가져야한다. 그러나 이것은 그렇게 보이지 않는다. 좀 도와 줄 수있어? – kusur

관련 문제