2016-11-19 34 views
0

私は私のスクリプトを使用して、次のlinkにアクセスし、起動したチャートをダウンロードしようとしています。保存画像

私は受け入れ応答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')] 
「コンテンツ長」が「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ファイルは機能し、まったく同じイメージです。私はそれが拡張を提供する画像共有サービスにアップロードすることなく、これを行う方法を探してみたが、何も見つかっていません。私はまた、元の文字列にsrc.pngを追加しようとしたが、それはどちらか動作しませんでした。私の推測では、これはウェブサイト固有の問題です。このための回避策を見つけることができれば幸いです!

+0

おかげで、私はそれがどんなイメージで動作することを同意する仕事をしていません拡張子(* .png、* .jpeg)がありますが、この場合は画像に拡張子がないので、可能なヒントを探しています – user1596115