PHP前端开发

爬虫下载附件失败怎么办?

百变鹏仔 5天前 #Python
文章标签 爬虫

爬虫下载附件遇到问题,无法下载附件

使用提供的代码爬取目标网站附件时,可能会遇到下载失败的问题。

问题原因

提供的代码在下载附件时使用了 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, '下载失败')

这样,代码将能够自动处理附件链接的重定向,并成功下载附件。