从带有 URL 的 .CSV 文件下载图像时出现 HTTP 403 我该怎么办?

Posted

技术标签:

【中文标题】从带有 URL 的 .CSV 文件下载图像时出现 HTTP 403 我该怎么办?【英文标题】:HTTP 403 when downloading images from a .CSV file with URL's What can I do? 【发布时间】:2021-12-21 14:32:35 【问题描述】:
def url_to_jpg(i, url, FILE_PATH):
try:
    url_basename = url.split("/")[-1]
    filename = '.jpg'.format(url_basename.rsplit( ".", 1 )[ 0 ])
    full_path = ''.format(FILE_PATH, filename)
    response = urllib.request.urlretrieve(url, full_path)
    print(' saved.'.format(full_path))
    return None
except HTTPError as err:
    print(err)
except:
    e = sys.exc_info()[0]
    print(e)

这是我的代码的核心部分,没有元素和东西,我能做些什么来避免 403 错误,也许尝试 selenium?

【问题讨论】:

您可能必须先授权才能下载这些图像。 403 表示禁止。服务器理解您的请求但拒绝了它,因为您没有正确的权限。 @Jeff 这是一个工作中的报废项目,我没有任何授权,这就是为什么我需要找到一种方法来跳过它。这是 1 个网址:bananarepublic.com.pe/media/catalog/product/cache/small_image/… 我用requests下载这张图片没有问题。 您是否尝试过更改 User-Agent 请求标头? 【参考方案1】:
def url_to_jpg(i, url, filepath):
url_basename = url.split("/")[-1]
imagename = '.jpg'.format(url_basename.rsplit( ".", 1 )[0])
fullpath = ''.format(filepath, imagename)
response = requests.get(url, fullpath)
file = open(imagename, "wb")
file.write(response.content)
file.close()
print(' saved.'.format(fullpath))
return None
filename = 'libro.csv'

文件路径 = 'fotospython/' urls = pd.read_csv(文件名)

for i, url in enumerate(urls.values): url_to_jpg(i, url[0], 文件路径)

这是我使用代码的最终请求,它可以工作,但不能将文件放入文件夹中,现在可以工作

【讨论】:

以上是关于从带有 URL 的 .CSV 文件下载图像时出现 HTTP 403 我该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中打开 CSV 文件时出现错误消息

尝试打开 .csv 文件时出现“从文件初始化失败”错误(这根本不应该有问题)

将 CSV 文件从 S3 加载到 Snowflake 时出现 SQL 编译错误

使用python将数据从csv文件插入oracle时出现错误ORA-01722:无效数字

从 CSV 填充 postgres 表列时出现非空约束错误

在 jar 中加载 Web 图像时出现安全异常