2017-09-26 1 views
0

tl; dr 특정 User-Agents 만 허용하는 서버에서 파일을 다운로드하고 싶습니다. 나는 다음과 같은 코드를 사용하여 사이트에서 200 OK을 얻을 수 있었다 : urlopen()을 사용하여 Python3에서 파일을 다운로드하거나 urlretrieve()에 사용자 정의 헤더를 추가하려면 어떻게합니까?

opener = urllib.request.build_opener() 
opener.addheaders = [('User-Agent', 'Interwebs Exploiter 4')] 
opener.open(url) 

파일이 .PDF 또는 .ZIP 또는 다른 형식이 될 수 있기 때문에

, 나는 구문 분석하거나 읽는없이 그것을 다운로드 할 수 있습니다. Urlretrieve()은 좋은 생각처럼 보이지만 서버가 403 Forbidden을 반환하게하는 기본 헤더를 사용합니다.

사용자 정의 빌더를 사용하여 파일을 다운로드하거나 단순히 헤더를 urlretrieve()에 추가 할 수 있습니까?

파이썬 문서에서 this example은 완전 헛소리입니다.

답변

1

나는 그것에 대해 requests을 사용합니다 :

import requests 

headers = {'User-Agent': 'Interwebs Exploiter 4'} 

r = requests.get(url, allow_redirects=True, headers=headers) 
    with open(filename, 'wb') as f: 
     for chunk in r.iter_content(1024): 
      f.write(chunk) 

을 절대적으로 필수적하지 않는 몇 가지 이유가 urllib

+0

추가 종속성을 설치하지 않고 그 일을 어떤 방법을 사용 하시나요? – stendarr

관련 문제