爬虫下载附件失败怎么办?
爬虫下载附件遇到问题,无法下载附件
使用提供的代码爬取目标网站附件时,可能会遇到下载失败的问题。
问题原因
提供的代码在下载附件时使用了 requests.get 函数,该函数默认不会自动处理文件重定向。而目标网站的附件链接通常会重定向到实际的文件下载地址。因此,使用 requests.get 函数获取的响应并不是实际的文件内容。
解决方案
要解决这个问题,可以更改代码中下载附件的代码如下:
def download(fileName, url, path): """下载附件""" try: print('下载中,请耐心等待...') # 使用 `requests.head` 函数获取重定向后的文件下载地址 res = requests.head(url, allow_redirects=True) # 将 `Location` 头中的重定向地址作为文件的实际下载地址 url = res.headers['Location'] # 使用 `requests.get` 函数获取文件内容 r = requests.get(url) with open(path + fileName, "wb") as File: File.write(r.content) print(fileName, '下载Ok') except: print(fileName, '下载失败')
这样,代码将能够自动处理附件链接的重定向,并成功下载附件。