2016-11-19 2 views
0

Я пытаюсь получить доступ к следующему link через мой скрипт и загрузить диаграмму, которая появляется.Сохранить изображение с urllib.urlretrieve()

я его реализации с использованием принятого ответа here, но когда я пытаюсь открыть файл, я получаю ошибку: The file “test.png” could not be opened because it is empty.

Вот мой фрагмент кода:

import urllib 
image_element = driver.find_element_by_id('chartImg') 
src = image_element.get_attribute("src") 
if src: 
    urllib.urlretrieve(str(src), "test.png") 

Далее я пытался отладить дальше и изменил код для

if src: 
    a, b = urllib.urlretrieve(str(src), "test.png") 
    print a, b.items() 

, который дает мне следующий вывод:

test.png 
[('date', 'Sat, 19 Nov 2016 01:19:20 GMT'), ('connection', 'Keep-Alive'), ('content-length', '0'), ('server', 'BigIP')] 

Кто-нибудь знает, почему 'content-length' равно '0'? Я думаю, что это причина, по которой загруженный файл пуст.

ответ

1

Я нашел работу вокруг ... Сделать снимок

image_element = driver.find_element_by_id('chartImg') 
    src = image_element.get_attribute("src") 
    if src: 
     driver.get(src) 
     driver.save_screenshot('screen.png') 

Не знаю, есть ли лучший способ, но это делает работу

1

Я думаю, причина в том, что изображение, которое вы очищаете, не содержит расширения. Если вы запустите этот код, например:

src = "http://i.imgur.com/2C7Csq6.png" 
urllib.urlretrieve(src, "test.png") 

Файл PNG работает, и это то же самое изображение. Я пробовал искать способы сделать это, не загружая в службу обмена изображениями, где он будет предоставлять расширение, но ничего не нашел. Я также попытался добавить .png в исходную строку src, но это тоже не сработало. Я предполагаю, что это проблема, связанная с веб-сайтом. Надеюсь, вы найдете обходной путь для этого, удачи!

+0

спасибо, я согласен, что он будет работать с любым изображением расширение (* .png, * .jpeg), но в этом случае, поскольку изображение не имеет расширения, я ищу любые возможные подсказки – user1596115

Смежные вопросы