2017-05-19 3 views
0

https://www.apkmirror.com/wp-content/themes/APKMirror/download.php?id=215041과 같은 링크에서 (APK) 파일을 다운로드하려고합니다. 브라우저에 링크를 입력하면 파일을 열거 나 저장하는 대화 상자가 나타납니다 (아래 참조).Python에서 urllib.urlretrieve는 "도망 가다"라는 파일을 다운로드합니다.

enter image description here

나는 파이썬 스크립트를 사용하여 파일을 저장하고 싶습니다.

import urllib 

download_link = 'https://www.apkmirror.com/wp-content/themes/APKMirror/download.php?id=215041' 
download_file = '/tmp/apkmirror_test/youtube.apk' 

if __name__ == "__main__": 
    urllib.urlretrieve(url=download_link, filename=download_file) 

있지만 결과 youtube.apk는 "저리가"단어 만 포함되어 있습니다 : 나는 다음 시도했습니다.

내 브라우저의 주소 표시 줄에 링크를 붙여서 파일을 다운로드 할 수 있으므로이 주소와 urllib.urlretrieve 사이에 약간의 차이가 있어야 작동하지 않습니다. 누군가가이 차이점을 설명하고이를 어떻게 제거 할 수 있습니까? 그것이의 robots.txt에서 허용되지로

+2

서버가 사용자 에이전트를보고있을 수 있습니다. 사용자 에이전트는 일반 브라우저 대신 코드를 사용하여 파일을 다운로드하고 다른 파일을 제공하려고합니다. 올바른 헤더를 추가하여 사용자 에이전트를 사용자 정의 할 수 있으므로 일반 브라우저를 스푸핑 * 할 수 있습니다. –

답변

2

당신은 프로그램이 다운로드 페이지에 액세스 할해야합니다 말했다되고 그건 https://www.apkmirror.com/robots.txt

, 귀하의 요청 헤더가 다르다. 기본적으로 Python은 User-Agent를 "Python ..."과 같은 것으로 설정합니다. 그것이 가장 큰 원인입니다.

관련 문제