Python 如何从重定向的URL下载文件?

Python 如何从重定向的URL下载文件?,python,python-3.x,python-requests,urllib2,Python,Python 3.x,Python Requests,Urllib2,我需要使用url下载一个文件-> 此url重定向到带有.pdf文件的url 如何使用python下载具有此url的文件 我试过:- import urllib def download_file(download_url): web_file = urllib.urlopen(download_url) local_file = open('some_file.pdf', 'w') local_file.write(web_file.read()) web_fil

我需要使用url下载一个文件->

此url重定向到带有.pdf文件的url

如何使用python下载具有此url的文件

我试过:-

import urllib
def download_file(download_url):
    web_file = urllib.urlopen(download_url)
    local_file = open('some_file.pdf', 'w')
    local_file.write(web_file.read())
    web_file.close()
    local_file.close()

if __name__ == 'main':
    download_file('https://readthedocs.org/projects/django/downloads/pdf/latest/')
但这是行不通的

import requests
url = 'https://readthedocs.org/projects/django/downloads/pdf/latest/'
r = requests.get(url, allow_redirects=True)  # to get content after redirection
pdf_url = r.url # 'https://media.readthedocs.org/pdf/django/latest/django.pdf'
with open('file_name.pdf', 'wb') as f:
    f.write(r.content)
如果要从其他方法下载文件,或者只想获得最终重定向URL,可以使用requests.head,如下所示:

r = requests.head(url, allow_redirects=True)  # to get only final redirect url
如果要从其他方法下载文件,或者只想获得最终重定向URL,可以使用requests.head,如下所示:

r = requests.head(url, allow_redirects=True)  # to get only final redirect url

你试过什么没用的?我并不想说得太苛刻,但这太琐碎了,以至于我无法理解您的实际问题是什么……我尝试了一些方法,下载了一个URL中扩展名为.pdf的常规文件。您尝试过哪些方法无效?我并不想说得太苛刻,但这太琐碎了,以至于我无法理解您的实际问题是什么……我已经尝试了各种方法,下载了一个扩展名为.pdf的常规文件URL@TheGodfather所以它超出了请求模块的范围。@教父,所以它超出了请求模块的范围。