爬虫下载附件失败:如何解决政府网站附件下载难题?
爬虫下载附件的问题:附件下载不下来
问题描述
使用提供的爬虫代码爬取政府网站的附件时,无法下载附件。
代码分析
def download(filename, url, path): """ 下载附件 """ try: print('下载中,请耐心等待...') r = requests.get(url) with open(path + filename, "wb") as file: file.write(r.content) print(filename, '下载ok') except: print(filename, '下载失败')
解决方案
从代码中可以看出,下载附件的功能已经实现。问题原因可能不在于代码,而是其他方面:
优化建议
即使解决了附件下载问题,代码仍有优化空间:
优化后的代码
import contextlibdef download(fileName, url, path): """ 下载附件 """ try: print('下载中,请耐心等待...') with contextlib.closing(requests.get(url, stream=True)) as r: with contextlib.closing(open(path + fileName, "wb")) as File: File.write(r.content) print(fileName, '下载Ok') except: print(fileName, '下载失败')