【背景】
写爬虫很多时候的目的是为了获得资源。当这些资源不是直接的字符数据,而是各类文件或者多媒体时如何自动将这些文件资源或者多媒体资源自动下载到本地呢?今天就介绍一个写好的函数功能,可以作为通用函数用在爬虫程序中。
【自动下载文件到本地函数】def bulk_download(url_list:list,format:str,save_path:str):
for ele in url_list:
if format in ele:
file_name = os.path.split(ele)[-1]
full_path = os.path.join(save_path,file_name)
with open(full_path,"wb") as file:
response = get(ele)
file.write(response.content)
print("download %s done"%ele)
else:
print("%s is not a valid link for resource %s"%(ele,format))
作为批量下载的样例,传的参数中包含一个url列表,这个列表可以包含一系列的资源地址,format则代表下载文件的后缀名,save_path指定了保存的目标位置。 整个功能开始就是一个url_list的大循环,当然,也可以把这个循环写到调用函数的那一层,看具体哪种方法方便。 获得目标保存地址+文件名+后缀的FullPath后,我们用wb模式开始直接用写二进制信息的形式将资源内容写进目标存储位置。 这样就可以实现资源的批量下载啦。