如何防止将HTML /文本页面下载为.png

时间:2013-07-24 08:41:28

标签: python

http://puu.sh/3Krct.png

我的程序生成指向托管图像的服务的随机链接,并抓取并下载随机图像。该程序提出了很多请求,因此必须通过代理。

好吧,当程序启动时,我只是给它一个新的大型代理列表的路径;但是,有时代理将不会连接到网站,有时他们将返回自定义HTML页面 - 或者图像服务将返回页面上的消息“您无权查看此图像”。虽然,该程序仍将保存请求并下载扩展名为.png的页面

所以有时这些HTML /文本页面会保存为.png文件:

http://puu.sh/3KrxM.png

http://puu.sh/3KrGN.png

有什么方法可以阻止下载这些页面,只下载实际图像吗?

谢谢。

if self.proxy != False:
    #make our requests go through proxy
    self.opener.retrieve(url, filename)
else:
    urllib.request.urlretrieve(url, filename)

1 个答案:

答案 0 :(得分:0)

我认为你应该改变逻辑。

如果代理在收到您询问的页面时返回错误,则通常使用HTTP状态代码!= 200

然后您应该按顺序检查:

  • HTTP状态!= 200
  • 为正确类型返回的Content-type标头(在本例中为image / jpeg)

对于这类任务,我建议使用requests module