通过Python的urllib保存GIF文件

时间:2018-11-01 20:39:44

标签: python urllib

请注意,我正在使用以下版本的Python:

  

(venv)C:\ Users \ NBenton \ PycharmProjects \ RES3D_BETA> python Python 3.6.5   (v3.6.5:f59c0932b4,2018年3月28日,16:07:46)[MSC v.1900 32位(Intel)]   在win32上

我尝试使用以下两个脚本通过URL下载单个GIF文件。

1)

from urllib.request import urlretrieve

urlretrieve('http://www.iframeapps.dcnr.state.pa.us/topogeo/PaGWIS_search/DisplayReportImage.aspx?id=IM209132',
            "C:/Users/NBenton/PycharmProjects/RES3D_BETA/image1.gif")

2)

from urllib import request

request.urlretrieve("http://www.iframeapps.dcnr.state.pa.us/topogeo/PaGWIS_search/DisplayReportImage.aspx?id=IM209132",
                    "image2.gif")

对于这些脚本中的每一个,该过程都以退出代码0结尾-因此,据我所知,没有发生灾难性事件。

但是,两个输出文件(image1.gif和image2.gif)在查看每个文件时都显示为:

Output

有人可以提供有关此问题的一些见解吗?确实确实有类似(几乎相同)的情况发生在stackoverflow上,但并非如此。

1 个答案:

答案 0 :(得分:1)

要检索的URL不是图像源,而是包含图像的HTML文档。

运行(或在浏览器中打开URL)时:

curl http://www.iframeapps.dcnr.state.pa.us/topogeo/PaGWIS_search/DisplayReportImage.aspx?id=IM209132

您可以在文档的源文档中查看图像src

<!--...-->
<div style="text-align: center;">
    <img id="imgPhoto" src="./WellReports/<maskedpath>/IM209132.gif" width="100%" border="0" />
</div>

图像的src表明其位置是相对于URL路径而言的,即

http://www.iframeapps.dcnr.state.pa.us/topogeo/PaGWIS_search/WellReports/<maskedpath>/IM209132.gif