【问题标题】:Error in downloading and saving image using python使用python下载和保存图像时出错
【发布时间】:2010-02-17 07:29:25
【问题描述】:

我编写了一个用于从网站下载和保存图像的代码。它运行良好,但对于某些 url,它显示错误。我在下面粘贴代码

import urllib2
import webbrowser

imageurl='http://www.example.com/'+image[s]
opener1 = urllib2.build_opener()
page1=opener1.open(imageurl)
my_picture=page1.read()
image1=image[s].replace("/","")
fout = open('images/tony/'+image1, "wb")
fout.write(my_picture)
fout.close()

实际上我得到了很多 image[s] 的值并且几乎可以正常工作。但是当 image[s]=images/PG013001 GROUP 2.jpg 的值时,编译器会报错

文件“leather.py”,第 37 行,在 get_leather page1=opener1.open(imageurl) 文件“D:\Program Files\Python\lib\urllib2.py”,第 395 行,打开 响应=方法(请求,响应) http_response 中的文件“D:\Program Files\Python\lib\urllib2.py”,第 508 行 'http', 请求, 响应, 代码, msg, hdrs) 文件“D:\Program Files\Python\lib\urllib2.py”,第 433 行,错误 返回 self._call_chain(*args) _call_chain 中的文件“D:\Program Files\Python\lib\urllib2.py”,第 367 行 结果 = 函数(*args) http_error_default 中的文件“D:\Program Files\Python\lib\urllib2.py”,第 516 行 引发 HTTPError(req.get_full_url(), 代码, msg, hdrs, fp) urllib2.HTTPError:HTTP 错误 404:未找到

我认为相应的 imageurl 即 'http://www.example.com/images/PG013001 GROUP 2.jpg' 不存在,但是当它被检查时它存在。请提出修复建议

问候

【问题讨论】:

    标签: python


    【解决方案1】:

    网址不能直接包含空格;这根本是不允许的。您要做的是引用或编码文件名中的空格,以使 url 变得合法。 Here's wikipedia on the matter.

    所以,你想引用你传递给 urllib2 的 url。在您的代码中,您可以通过将一行更改为如下所示来做到这一点:

    page1=opener1.open(urllib2.quote(imageurl))
    

    应该这样做。

    【讨论】:

      【解决方案2】:

      您应该修复链接。试试这个:

      >>> import urllib
      >>> urllib.quote("images/PG013001 GROUP 2.jpg")
      'images/PG013001%20GROUP%202.jpg'
      

      【讨论】:

      • 感谢它确实解决了我的问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 2012-05-15
      • 2020-12-08
      相关资源
      最近更新 更多