如何使用python下载文件
Python 提供了不同的模块,如 urllib、requests 等,用于从 Web 下载文件,将使用 python 的请求库来高效地从 URL 下载文件。Requests是 Python 中的多功能 HTTP 库,具有各种应用程序。它的应用之一是使用文件 URL 从 Web 下载文件。
让我们晓得博客为你介绍使用如何使用python下载文件的方法。
安装
首先,您需要下载请求库。您可以通过键入以下命令使用 pip 直接安装它:
pip install requests
推荐:使用 BeautifulSoup从HTML中提取JSON
Python下载图片
下面的一小段代码将从网上下载以下图像。现在检查您的本地目录(此脚本所在的文件夹),您将找到此图像:我们只需要图像源的 URL。(您可以通过右键单击图像并选择查看图像选项来获取图像源的 URL。)
Python 3 代码如下所示:
import requests
image_url = "https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png"
r = requests.get(image_url)
with open("python_download_logo.png",'wb') as f:
f.write(r.content)
Python下载大文件
HTTP 响应内容 ( r.content ) 只不过是一个存储文件数据的字符串。因此,在大文件的情况下,不可能将所有数据保存在单个字符串中。为了克服这个问题,我们对我们的程序进行了一些更改:由于无法通过单个字符串存储所有文件数据,因此我们使用r.iter_content方法将数据分块加载,指定块大小。
r = requests.get(URL, stream = True)
将Stream流参数设置为True将导致仅下载响应头并且连接保持打开状态,避免了一次将所有内容读入内存以进行大响应。每次迭代r.iter_content时都会加载一个固定的 chunk 块。
Python 3 代码如下所示:
import requests
file_url = "https://help.apple.com/pdf/final-cut-pro/en_US/final-cut-pro-user-guide.pdf"
r = requests.get(file_url, stream = True)
with open("python_finalcutprox.pdf","wb") as pdf:
for chunk in r.iter_content(chunk_size=1024):
# writing one chunk at a time to pdf file
if chunk:
pdf.write(chunk)
Python下载视频
使用Python下载视频时候,我们先抓取网页,提取所有视频链接,然后将视频一一下载。
Python 3 代码如下所示:
import requests
from bs4 import BeautifulSoup
archive_url = "http://www-personal.umich.edu/~csev/books/py4inf/media/"
def get_video_links():
r = requests.get(archive_url)
soup = BeautifulSoup(r.content,'html5lib')
links = soup.findAll('a')
video_links = [archive_url + link['href'] for link in links if link['href'].endswith('mp4')]
return video_links
def download_video_series(video_links):
for link in video_links:
file_name = link.split('/')[-1]
print( "Downloading file:%s"%file_name)
r = requests.get(link, stream = True)
with open(file_name, 'wb') as f:
for chunk in r.iter_content(chunk_size = 1024*1024):
if chunk:
f.write(chunk)
print( "%s downloaded!\n"%file_name )
print ("All videos downloaded!")
return
if __name__ == "__main__":
video_links = get_video_links()
download_video_series(video_links)
使用 Requests 库下载网页文件的优点是:可以通过递归遍历网站轻松下载 Web 目录!这是一种独立于浏览器的方法,而且速度要快得多!人们可以简单地抓取网页以获取网页上的所有文件 URL,因此,只需一个命令即可下载所有文件 。
总结
以上是晓得博客为你介绍的如何使用python下载文件的内容,希望对你的Python学习有帮助,如果发现任何不正确的内容,或者您想分享有关上述主题的更多信息,请发表评论。
Claude、Netflix、Midjourney、ChatGPT Plus、PS、Disney、Youtube、Office 365、多邻国Plus账号购买,ChatGPT API购买,优惠码XDBK,用户购买的时候输入优惠码可以打95折