Python 在HTTP上下载文件
在Python中,我们使用内置的Python库(例如urllib、request和httplib)来下载HTTP文件。HTTP是一种超文本传输协议,用于访问互联网上的数据。HTTP请求通常由客户端(例如Web浏览器)发起,并发送到托管所请求资源的服务器上。请求通常包括一种方法(如GET或POST)、标识资源的统一资源定位符(URL)以及可选的提供有关请求的其他信息的标头。在本文章中,我们将了解如何使用urllib和request库来下载文件。
使用urllib下载文件
Urllib包含子模块,例如urllib.request,可以用来轻松地从互联网上下载文件。urllib.request接受文件的URL和您要为下载的文件提供的文件名作为输入。
语法
urllib.request.urlretrieve(URL, filename)
在这里, urllib.request.urlretrieve 函数接受两个参数。一个是互联网上文件的URL,另一个是你想给下载文件的文件名。
示例
在下面的示例中,使用urllib库下载HTTP文件,首先导入urllib.request模块,然后调用urllib.request模块的urlretrive函数。将要下载的文件的URL和下载后要保存的文件名作为参数传递。
如果传递了无效的URL或文件无法下载,则会引发异常。
import urllib.request
from PIL import Image
url = 'https://www.python.org/static/img/python-logo.png'
filename = 'python-logo.png'
urllib.request.urlretrieve(url, filename)
with open(filename, 'rb') as f:
image = Image.open(f)
image.show()
输出
使用requests库下载文件
在Python中,requests库使用其get方法进行HTTP请求。它简单地以文件的URL作为输入,并进行get请求以下载文件,并将下载的文件作为响应返回。
语法
requests.get(URL)
在这里,在 requests.get() 方法中,URL是要通过互联网下载的文件的URL。
示例
在下面的示例中,我们导入requests库,并指定我们想要下载的文件的URL和要给下载文件的名称。然后我们导入requests库并使用requests.get()方法来下载Python标志。该方法返回一个包含文件内容的响应对象。最后,我们读取下载的文件并在屏幕上打印出来。
import requests
url = 'https://www.python.org/static/img/python-logo.png'
filename = 'python-logo.png'
response = requests.get(url)
from PIL import Image
with open(filename, 'rb') as f:
image = Image.open(f)
image.show()
输出
总结
在这篇文章中,我们讨论了如何使用Python内置的urllib和requests库来在Python中通过HTTP下载文件。requests库提供了一个更高级的接口,比urllib更用户友好。requests库提供了一个更简单的下载文件的方法比urllib库。任何一个库都可以用来在Python中下载文件。