くぴんのブログ

くぴんのブログ

PR

プロフィール

くぴん74

くぴん74

カレンダー

カテゴリ

お気に入りブログ

dow 39134.76 +299.9… New! どらりん0206さん

2024~25主力株概況3… New! みきまるファンドさん

楽天ラッキーくじ更… じゃっかすさん

千秋楽だ!! Maryu21さん

自分を愛することは… まりあのじいじさん

キーワードサーチ

▼キーワード検索

2015年09月26日
XML
カテゴリ: プログラミング

株価3ヶ月チャート画像をダウンロードして5x10=50個ずつ並べるスクリプトを書いてみた。

-----ここから 

# -*- coding: utf-8 -*-
import urllib2
from PIL import Image

#yahooファイナンスから3ヶ月チャート画像をダウンロードして50個ずつ並べる

def download(url, path):
    fp = urllib2.urlopen(url)
    local = open(path + code+'.jpg', 'wb')
    local.write(fp.read())
    local.close()
    fp.close()

def paste(code, h, v, k):
    img = Image.open(str(code)+'.jpg', 'r')    
    canvas.paste(img, (((k-1)%5)*h, ((k-1)//5)*v))

f=open('codes_150926.csv', 'r') #銘柄コード
i=0
j=1
k=0
h=512 #水平ピクセル
v=310 #垂直ピクセル
# マージに利用する下地画像を作成する
canvas = Image.new('RGB', (5*h, 10*v), (255, 255, 255))
for code in f:
    code=code.rstrip()
    i+=1
    k=i-50*(j-1)
    print code, k
    url='http://chart.yahoo.co.jp/?code='+str(code)+'.T&tm=3m&type=c&log=off&size=m&over=m65,m130,s&add=v&comp='
    download(url, './')
    paste(code, h, v, k)
    if i==50*j:
        # 保存
        canvas.save('c'+str(j)+'.jpg', 'JPEG', quality=100, optimize=True)
        canvas.close()
        canvas = Image.new('RGB', (5*h, 10*v), (255, 255, 255))
        j+=1
canvas.save('c'+str(j)+'.jpg', 'JPEG', quality=100, optimize=True)
canvas.close()
f.close()
-----ここまで
↓結果はこんな感じ
キャプチャ.PNG
1301
1332
1333

 …

9995
9996
9997

画像ダウンロードは、以下の関数で実施。

def download(url, path):
    fp = urllib2.urlopen(url)
    local = open(path + code+'.jpg', 'wb')
    local.write(fp.read())
    local.close()
    fp.close()

pillowというモジュールで画像の編集がいろいろとできる。

画像を並べるのは以下の関数で実施。

def paste(code, h, v, k):
    img = Image.open(str(code)+'.jpg', 'r')    
    canvas.paste(img, (((k-1)%5)*h, ((k-1)//5)*v))

↓参考URL
http://blog.takkinoue.com/entry/2015/04/04/171000

https://librabuch.jp/2013/05/python_pillow_pil/

にほんブログ村 サラリーマン日記ブログ 戦うサラリーマンへ

にほんブログ村





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2015年09月26日 21時00分21秒
コメントを書く
[プログラミング] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

© Rakuten Group, Inc.
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: