Python 提供多种从互联网下载文件的方法,可以使用 urllib
包或 requests
库通过 HTTP 进行下载。本教程将介绍如何使用这些库通过 Python 从 URL 下载文件。
requests
库
requests
是 Python 中最流行的库之一。它允许发送 HTTP/1.1 请求,无需手动将查询字符串添加到 URL 或对 POST 数据进行表单编码。
requests
库可以执行许多功能,包括:
发出请求
首先,需要安装该库,方法很简单:
pip install requests
要测试安装是否成功,可以在 Python 解释器中简单地输入以下命令:
import requests
如果安装成功,不会出现错误。
HTTP 请求包括:
发出 GET 请求
发出请求非常简单,如下所示:
import requests req = requests.get("https://www.google.com")
上述命令将获取 Google 网页并将信息存储在 status_code
中。
import requests req = requests.get("https://www.google.com") req.status_code 200 # 200 表示请求成功
如果想知道 Google 网页的编码类型呢?
req.encoding 'ISO-8859-1'
可能还想了解响应的内容:
req.text
这只是响应内容的截断部分。
<code>'<meta content="Search the world\'s information, including webpages, imag...'</code>
发出 POST 请求
简单来说,POST 请求用于创建或更新数据,尤其用于表单提交。
假设有一个注册表单,需要输入电子邮件地址和密码。单击注册提交按钮时,POST 请求如下所示:
data = {"email": "info@tutsplus.com", "password": "12345"} req = requests.post("http://www.google.com", params=data)
发出 PUT 请求
PUT 请求类似于 POST 请求,用于更新数据。例如,以下 API 显示了如何发出 PUT 请求:
data = {"name": "tutsplus", "telephone": "12345"} r.put("http://www.contact.com", params=data)
发出 DELETE 请求
顾名思义,DELETE 请求用于删除数据。以下是一个 DELETE 请求的示例:
data = {'name': 'Tutsplus'} url = "https://www.contact.com/api/" response = requests.delete(url, params=data)
urllib
包
urllib
包收集了用于处理 URL 的多个模块:
urllib.error
包含 urllib.parse
引发的异常,用于解析 URLrobots.txt
文件urllib.request
如下所示:
import urllib.request with urllib.request.urlopen('http://python.org/') as response: html = response.read()
如果希望检索互联网资源并将其存储,可以通过 urlretrieve()
函数进行:
import urllib.request filename, headers = urllib.request.urlretrieve('http://python.org/') html = open(filename)
使用 Python 下载图像
在此示例中,将使用 requests
库和 urllib
模块下载此示例图像。
url = 'https://www.python.org/static/opengraph-icon-200x200.png' # 使用 urllib 下载 # 导入 urllib 库 import urllib.request # 将网络对象复制到本地文件 urllib.request.urlretrieve(url, "python.png") # 使用 requests 下载 # 导入 requests 库 import requests # 以二进制格式下载 url 内容 r = requests.get(url) # open 方法打开系统上的文件并写入内容 with open("python1.png", "wb") as code: code.write(r.content)
使用 Python 下载 PDF 文件
在此示例中,将下载关于 Google 趋势的 PDF 文件。
url = 'https://static.googleusercontent.com/media/www.google.com/en//googleblogs/pdfs/google_predicting_the_present.pdf' # 使用 urllib 下载 # 导入 urllib 包 import urllib.request # 将网络对象复制到本地文件 urllib.request.urlretrieve(url, "tutorial.pdf") # 使用 requests 下载 # 导入 requests 库 import requests # 以二进制格式下载文件内容 r = requests.get(url) # open 方法打开系统上的文件并写入内容 with open("tutorial1.pdf", "wb") as code: code.write(r.content)
使用 Python 下载 Zip 文件
在此示例中,将下载 GitHub 存储库的内容并将文件存储在本地。
pip install requests
使用 Python 下载视频
在此示例中,将下载一个视频讲座。
import requests
使用 Python 下载 CSV 文件
还可以使用 requests
和 urllib
库下载 CSV 文件,并使用 csv
模块处理响应。让我们使用一些示例 CSV 地址数据。
import requests req = requests.get("https://www.google.com")
结论
本教程介绍了最常用的文件下载方法以及最常见的文件格式。尽管使用 urllib
模块时编写的代码较少,但由于其简单性、流行性和许多附加功能(包括:保持活动和连接池、具有 cookie 持久性的会话、浏览器样式的 SSL 验证、自动内容解码、身份验证、自动解压缩、Unicode 响应正文、HTTP(S) 代理支持、多部分文件上传、流下载、连接超时、分块请求、.netrc
支持),因此更推荐使用 requests
模块。
以上是如何在Python中下载文件的详细内容。更多信息请关注PHP中文网其他相关文章!