【发布时间】:2017-10-19 14:32:45
【问题描述】:
我正在尝试从 https://www.apkmirror.com/wp-content/themes/APKMirror/download.php?id=215041 等链接下载 (APK) 文件。当您在浏览器中输入链接时,它会弹出一个对话框来打开或保存文件(见下文)。
我想使用 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 之间肯定存在一些差异,这使得它无法正常工作。有人可以解释这种差异以及如何消除它吗?
【问题讨论】:
-
服务器可能正在查看用户代理,注意到您正在尝试使用代码而不是常规浏览器下载文件,并为您提供不同的文件。您可以通过添加正确的标头来自定义用户代理,从而欺骗常规浏览器。
标签: python web-scraping urllib