在 Python 中,urllib.urlretrieve 下载一个文件 "Go away"

In Python, urllib.urlretrieve downloads a file which says "Go away"

我正在尝试从 link 下载 (APK) 文件,例如 https://www.apkmirror.com/wp-content/themes/APKMirror/download.php?id=215041。当您在浏览器中输入 link 时,它会弹出一个对话框来打开或保存文件(见下文)。

我想使用 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 只包含单词 "Go away".

由于我可以通过在浏览器的地址栏中粘贴 link 来下载文件,因此这与 urllib.urlretrieve 之间肯定存在一些差异,因此无法正常工作。谁能解释一下这种差异以及如何消除它?

您不应以编程方式访问该下载页面,因为它在 robots.txt 中是不允许的: https://www.apkmirror.com/robots.txt

话虽如此,您的要求 header 有所不同。 Python 默认设置 User-Agent 类似 "Python..."。这是最可能的检测原因。