2014-07-15 4 views
0

Noob에서 음악 다운로드 youtube.com이나 hypem.com과 같은 웹 사이트에서 .mp3 파일을 다운로드하려고한다고 가정 해 봅시다. 어떻게해야합니까? 웹 페이지 (요청 있음)를 여는 방법, 구문 분석 (아름다운 스프 사용) 방법을 알고 있습니다. 그러나이 단계 후에, 나는 정말로 무엇을 해야할지 모른다. 파일의 소스를 어떻게 찾을 수 있습니까? 어떻게 그가이 URL이 노래를 될 것이라는 점을 찾았어요 https://github.com/fzakaria/HypeScript/blob/master/hypeme.pyhttp : //

나는이 부분을 제외하고 그것의 대부분을 undertand에,

serve_url = "http://hypem.com/serve/source/{}/{}".format(id, key) 
    request = urllib2.Request(serve_url, "" , {'Content-Type': 'application/json'}) 
    request.add_header('cookie', cookie) 
    response = urllib2.urlopen(request) 
    song_data_json = response.read() 
    response.close() 
    song_data = json.loads(song_data_json) 
    url = song_data[u"url"] 

첫째 :

은의이 exemple이 스크립트를 가정 해 봅시다?

"http://hypem.com/serve/source/{}/{}".format(id, key) 

그런 다음이 라인, 그것은을 위해 무엇 아무 생각이 :

request = urllib2.Request(serve_url, "" , {'Content-Type': 'application/json'}) 

그래서 당신은 그것을 다운로드 할 의미가 있지 않은 경우 파일을 다운로드 할 수있는 링크 나 정보를 찾을 수 있습니까 내 질문에,? (예 : youtube) 파일의 소스를 어떻게 찾을 수 있습니까?

답변

1

첫 번째 질문에 대답하려면 웹 스크래핑에 많은 리버스 엔지니어링이 필요합니다. 나는 대본을 쓴 사람이 누구인지 추측하고, 그들이 긁어 모은 사이트를 연구하고 노래에 대한 URL이 어떻게 생겼는지 알아 냈습니다.

두 번째 질문에 대해서는 기본적으로 URL을 열기 전에 Request 개체가 만들어져 요청에 사용자 지정 헤더 (Content-Type)를 추가합니다.

일반 질문이있는 경우 requests 라이브러리를 살펴보십시오. 이것은 입니다. urllib보다 사용하기가 더 간단합니다.. 위 코드는 요청을 사용하여 다음과 같이됩니다.

import requests 

serve_url = "http://hypem.com/serve/source/{}/{}".format(id, key) 
# cookies is a simple key/value dictionary 
response = requests.get(serve_url, headers={'Content-Type': 'application/json'}, cookies=cookies) 
song_data = response.json() 
url = song_data[u"url"] 

IMHO를 훨씬 더 간단하고 이해하기 쉽습니다.

+0

답변 해 주셔서 감사합니다. 나는 "피들러"를 건너왔다. 그것으로, 나는 파일이 봉사 한 곳에서 볼 수 있었다. 그것을 찾을 수있는 다른 방법이 있습니까? – Saimu