Сохранение файла GIF через urllib Python - PullRequest
0 голосов
/ 01 ноября 2018

Обратите внимание, что я использую следующую версию Python:

(venv) C: \ Users \ NBenton \ PycharmProjects \ RES3D_BETA> python Python 3.6.5 (v3.6.5: f59c0932b4, 28 марта 2018, 16:07:46) [MSC v.1900 32 бит (Intel)] на win32

Я пытался использовать следующие два сценария для загрузки одного файла GIF через URL.

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

Может кто-нибудь предложить какое-то понимание этой проблемы? Действительно, похожие (почти идентичные) случаи относятся к стеку, но не так.

1 Ответ

0 голосов
/ 02 ноября 2018

Получаемый 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
...