티스토리 뷰

요즘 주식에 관심이 생겨서 소소하게 참여하고 있는데, 소액임에도 불구하고 은근히 신경쓰여서 계속 모니터링 하게 된다. 잠깐잠깐 보는 것 조차 시간이 아깝게 느껴지는 시기가 올 때 쯤... 평소 개발을 터미널 환경에서 하고 있었기 때문에 모니터링 할 수 있는 커맨드를 만들게 됐다.


뭐 사실 겸사겸사 python  공부도 하고 말이다.


#!/usr/bin/env python
#-*- coding: utf-8 -*-

import sys
try:
  import requests
  from bs4 import BeautifulSoup
except ImportError:
  print("Please install requests, BeautifulSoup.")

def usage():
	print "Usage: %s code" % sys.argv[0] 
	exit(255)

if len(sys.argv) == 1:
	usage()

code = sys.argv[1]

url = "http://finance.naver.com/item/main.nhn?code=" + code
s = requests.get(url)
plain_text = s.text

soup = BeautifulSoup(plain_text, "lxml")
ranks = soup.find("dl", {"class": "blind"})

if ranks == None:
	print "Unknown code(%s)" % code
	exit(255)

print ranks.get_text()
exit(0)


실행은 간단하다. 프로그램의 인자로 주식코드만 넘겨주면 된다.

결과나 contribute는 아래에서 확인하면 되시겠다. 내용에 명시되어 있지만, 무분별한 트래픽 발생에 대한 책임은 개인에게 있음을 명심하시라.


https://github.com/jybaek/gistbox/tree/master/finance


댓글
  • 프로필사진 밤톨 File "C:/Users/bamtori/PycharmProjects/Hello/hello.py", line 9
    print "Usage: %s code" % sys.argv[0]
    ^
    SyntaxError: Missing parentheses in call to 'print'

    이건 어떤 문제 인가요? 제가 워낙 초보라...
    2017.08.27 19:06
  • 프로필사진 BlogIcon Jaeyeon Baek python3 으로 하신 것 같습니다. python3 에서는 print 를 함수 형태로 써줘야 하기 때문에 괄호로 감싸주시면 되겠네요.

    print("Usage: %s code" % sys.argv[0])
    2017.08.28 07:57 신고
댓글쓰기 폼