如何使用python下载文件

如何使用python下载文件

如何使用python下载文件

  Python 提供了不同的模块,如 urllib、requests 等,用于从 Web 下载文件,将使用 python 的请求库来高效地从 URL 下载文件。Requests是 Python 中的多功能 HTTP 库,具有各种应用程序。它的应用之一是使用文件 URL 从 Web 下载文件。

如何使用python下载文件

  让我们晓得博客为你介绍使用如何使用python下载文件的方法。

安装

  首先,您需要下载请求库。您可以通过键入以下命令使用 pip 直接安装它:

pip install requests

  推荐:使用 BeautifulSoup从HTML中提取JSON

Python下载图片

  下面的一小段代码将从网上下载以下图像。现在检查您的本地目录(此脚本所在的文件夹),您将找到此图像:我们只需要图像源的 URL。(您可以通过右键单击图像并选择查看图像选项来获取图像源的 URL。)

使用Python下载图片

  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下载大文件

使用Python下载PDF文件

  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,因此,只需一个命令即可下载所有文件 。

  推荐:如何使用BeautifulSoup抓取网页

总结

  以上是晓得博客为你介绍的如何使用python下载文件的内容,希望对你的Python学习有帮助,如果发现任何不正确的内容,或者您​​想分享有关上述主题的更多信息,请发表评论。

  推荐:零基础如何开始学习Python

给文章评分

ThemeForest 模板套件
可视化创建WordPress网站

发表评论

您的电子邮箱地址不会被公开。

Scroll to Top