毎日株価のチェックを行っているのだが、最近の株高で監視したい銘柄が増えた事もあり非常に時間が掛かる作業となっている。
ちなみに、自分が株価調査の為に行っている作業はこんな感じである。
① 会社四季報でめぼしい銘柄を見つけて、yahooファイナンスのポートフォリオに登録
② 登録した銘柄を一つずつ確認して、株価が上昇している銘柄を確認
③ ②で確認した上昇している銘柄について、値上がり率ランキングでランキングを確認
一つ一つの銘柄について、値上がり率ランキングを確認するのは正直しんどいので、値上がり率ランキングを取得するツールを作ってみた。
#-*- coding:utf-8 -*- import urllib import re from BeautifulSoup import BeautifulSoup def main(): tmpList=[] codeHash=getCodeHash() #監視銘柄分処理を実施 for line in searchCode.split("\n"): if codeHash.has_key(line.strip()): tmpList.append((line.strip(),codeHash.setdefault(line.strip())[0],codeHash.setdefault(line.strip())[1])) #値上がり率ランキング順に結果を表示 for line in sorted(tmpList,key=lambda x:x[1]): #証券コード,ランキング,銘柄名を表示 print "%s,%s,%s" % (line[0],line[1],line[2]) #yahooランキングより管理銘柄のランキングを取得 def getCodeHash(): codeList=[] nameList=[] codeHash={} url="http://info.finance.yahoo.co.jp/ranking/?p=%s" #yahooランキングで500位までランキングされている銘柄を取得 for num in range(10): bs=BeautifulSoup(urllib.urlopen(url % num).read()) for line in bs.findAll("a",attrs={"href":re.compile(r"http://.*code")}): codeList.append(line.text) for line in bs.findAll("td",attrs={"class":"normal yjSt"}): nameList.append(line.text) for rank,(code,name) in enumerate(zip(codeList,nameList)): codeHash.setdefault(code.encode("utf_8"),[str(rank+1).zfill(3),name.encode("utf_8")]) return codeHash if __name__ == '__main__': #チェックしたい銘柄の証券コードを設定 searchCode=""" 7777 3237 6159 6072 3261 8946 3252 3668 8885 7157 9037 6245 5344 3175 3258 4298 6279 3782 4764 6861 8934 3266 2931 8912 3831 6054 2588 3662 3658 4206 4711 3664 3853 8508 6932 2193 2388 2749 6387 6619 3660 6367 3655 6064 6069 7148 3046 8096 6052 2196 """ main()
表示結果はこんな感じ。
これで上昇銘柄をチェックするのが楽になりそうである。GW中暇なのでいろいろなツールを開発していこう。