UlrLib正在下载图像不支持的格式

时间:2018-06-08 10:29:54

标签: python python-2.7 urllib

想要制作一个工具,以便从特定链接保存图像,但是遇到了问题。

我的代码如下:

import urllib

urllib.urlretrieve(url, "img.jpg")

问题是,如果我使用谷歌的任何链接,它可以完美无缺地工作。

例如:

link - 作品

但如果我想得到这个特定的图像:

link

它将文件保存为.jpg,但是当我想打开它时,我得到的文件格式不受支持。关于如何解决它的想法或背后的原因是什么?

1 个答案:

答案 0 :(得分:1)

问题是该网站阻止了基于浏览器签名的下载。将您的img.jpg文件重命名为page.html并在浏览器中打开,然后您会看到如下内容:

  

错误1010 Ray ID:xxxxxxxxx•2018-06-08 10:39:01 UTC

     

拒绝访问

     

发生了什么事?

     

本网站的所有者(asset.keepeek-cache.com)已禁止您的   根据您的浏览器签名(xxxxxxxxxx)进行访问。

     

Cloudflare Ray ID:xxxxxxxxxx•您的IP:xx.xx.xx.xx•   表演& Cloudflare的安全性

一旦您考虑过您是否想要违反网站所有者的意愿,您可以通过执行来改变您的用户代理(例如)

import urllib

# Change user agent to look like Firefox
urllib.URLopener.version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'
# Download file with new user agent
urllib.urlretrieve(url, "img.jpg")

为我解决了这个问题。