Urllib2 ValueError:未知的网址类型PNG

时间:2014-07-21 17:14:02

标签: image save urllib2 urlopen

y是网址http://statseeker/graphs/ping.jc-4050-1.delay.1405951106.png。这是一个内部网站。尝试保存此PNG文件时,这是它抛出的错误。我一直无法找到任何信息甚至从哪里开始。我希望能够将其保存为我想要的任何内容。

有人请指教。我在这里问了很多问题,几乎所有问题都没有答案。我不知道还能在哪里转。

data1 = urllib2.urlopen(y).read()
    g = 'test.png'
    urllib2.urlopen(data1).write(g)

输出

http://statseeker/graphs/ping.jc-4050-1.delay.1405951106.png
    Traceback (most recent call last):
      File "JacksonShowAndSave1.py", line 46, in <module>
        urllib2.urlopen(data1).write(g)
      File "C:\Python27\lib\urllib2.py", line 127, in urlopen
        return _opener.open(url, data, timeout)
      File "C:\Python27\lib\urllib2.py", line 396, in open
        protocol = req.get_type()
      File "C:\Python27\lib\urllib2.py", line 258, in get_type
        raise ValueError, "unknown url type: %s" % self.__original
    ValueError: unknown url type: ëPNG

1 个答案:

答案 0 :(得分:1)

因为我已经三次问这个问题,甚至连一个答案都没有。我尝试了一些细节,并且能够解决这个问题。

正确:

y = http://img1.wikia.nocookie.net/__cb20090805033855/zelda/images/5/56/Link_Artwork_7_(The_Minish_Cap).png
link = urllib2.Request(y)
response = urllib2.urlopen(link)
output = open('out2.jpg','wb')
output.write(response.read())
output.close()

完美地工作。

显然urllib2无法以直接打开和读取图像的格式打开任何图像文件。

编辑:这不起作用,因为最初我没有使用'wb'作为读写语句。

不正确:

data1 = urllib2.urlopen(y).read()
    g = 'test.png'
    urllib2.urlopen(data1).write(g)