【问题标题】:Getting an empty jpg file, when try to Download an image尝试下载图像时获取空的jpg文件
【发布时间】:2016-05-31 02:25:42
【问题描述】:

我一直在尝试从网站下载图像(不需要用户名和密码),但每次我得到一个空文件。我使用了传统的 urllib .retrieve 和 requests 方法,但得到了相同的结果。还有一件事是,如果我尝试在 15-20 分钟后通过复制粘贴 URL 手动打开相同的图像,则该图像本身不会打开。我假设在这种情况下需要某种会话处理。下面是我返回空图像的代码。

import os
import urllib

def savePic(url):
    uri="C:\Python27\Scripts\Photosurl2.jpg" 
    if url!="":
        urllib.urlretrieve(url, uri)

savePic("http://www-nass.nhtsa.dot.gov/nass/cds/GetBinary.aspx?ImageView&ImageID=491410290&Desc=Lookback+from+final+rest&Title=Scene+Photos+-+image1&Version=1&Extend=jpg")

感谢任何帮助。

【问题讨论】:

  • 网址本身并没有在这里显示任何照片!
  • 此网址无效,无法获取图片!
  • @Gabriel 和@Jahangir。您可以尝试以下步骤查看实际图像,然后复制该 URL 并尝试打开它。它会在第一个实例中打开,但在 15-20 分钟后,如果您尝试再次打开它,您将通过复制和粘贴 URL 来查看您当前看到的内容。还有一件事 Image 通过 ImageID 和 Desc 不同。以下是步骤: 1. www-nass.nhtsa.dot.gov/nass/cds/… .ID 可以不同,但​​步骤保持不变) 2. 在左侧 NASS 案例打开崩溃概述下,在下一篇文章中继续 -
  • 在碰撞概述(+ 号)下,您将看到现场照片再次单击 + 号,您将看到车辆 1(和车辆 2)单击该链接。这些是我需要下载的图像。单击任何图像以获取与上面相同的 URL(ImageID 和 Desc 除外)。您可以在新窗口中打开此 URL 进行检查,但 15-20 分钟后,如果您尝试打开相同的链接,您将看到您当前看到的图像。我再次提供第 1 步中提到的链接:www-nass.nhtsa.dot.gov/nass/cds/…

标签: python urllib


【解决方案1】:

当您尝试在 Python 中实现一些 HTTP 代码时,不要忘记验证您是否可以使用 curlwget 来执行这些 HTTP 请求。这将为您节省大量尝试调试代码中不存在的问题的时间。

它们也有非常好的详细模式,它会给你一些关于你缺少什么的提示。

此外,大多数高级 Python 开发人员都在使用 requests 库而不是 urllib 库。

PS。 Requests 库比 urllib 更容易使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 2012-02-22
    相关资源
    最近更新 更多