2017-05-19 4 views
0

https://www.apkmirror.com/wp-content/themes/APKMirror/download.php?id=215041などのリンクから(APK)ファイルをダウンロードしようとしています。ブラウザにリンクを入力すると、ファイルを開くか保存するダイアログが表示されます(下記参照)。Pythonで、urllib.urlretrieveが「離れる」と言うファイルをダウンロードします

enter image description here

私は、Pythonスクリプトを使用してファイルを保存したいと思います。

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の違いがあります。誰かがこの違いを説明し、それを排除する方法はありますか?

+2

サーバーは、通常のブラウザではなくコードを使用してファイルをダウンロードしようとしていることに気づいて、別のファイルを提供しているユーザーエージェントを調べている可能性があります。正しいヘッダーを追加することでユーザーエージェントをカスタマイズできます。これにより、通常のブラウザをスプーフィングする*ことができます。 –

答えて

2

それはrobots.txtの中で許可されていませんのようにして、プログラムでそのダウンロードページにアクセスしないでください。 https://www.apkmirror.com/robots.txt

言われて、あなたのリクエストヘッダが異なっていること。 PythonはデフォルトでUser-Agentを "Python ..."のようなものに設定します。これが検出の最も可能性の高い原因です。

関連する問題