티스토리 뷰

1. 주식정보

- 크롤링을 통해 종목의 정보들을 크롤링하여 딕셔너리로 출력

import requests
from bs4 import BeautifulSoup

# crawl 웹페이지의 데이터를 받아오는 함수, 인자 url
def crawl(url):
    data = requests.get(url)
    # print(data)
    return data.content

def parse(pageString):
    bsObj = BeautifulSoup(pageString, "html.parser")
    name = bsObj.find("div", {"class":"wrap_company"}).find("a").text
    price = bsObj.find("p", {"class":"no_today"}).find("span", {"class":"blind"}).text
    code = bsObj.find("div", {"class":"description"}).find("span", {"class":"code"}).text
    category = bsObj.find("div", {"class": "description"}).find("img")['class'][0]
    return {"name":name,
            "price":price,
            "code":code,
            "category":category}

companys = ["005930", "005935", "035720", "033780", "068270"]

def getCompanyInfo(code):
    url = "https://finance.naver.com/item/main.nhn?code={}".format(code)
    pageString = crawl(url)
    companyInfo = parse(pageString)
    return companyInfo

for codes in companys:
    print(getCompanyInfo(codes))
#출력
{'name': '삼성전자', 'price': '86,800', 'code': '005930', 'category': 'kospi'}
{'name': '삼성전자우', 'price': '77,600', 'code': '005935', 'category': 'kospi'}
{'name': '카카오', 'price': '463,000', 'code': '035720', 'category': 'kospi'}
{'name': 'KT&G', 'price': '81,200', 'code': '033780', 'category': 'kospi'}
{'name': '셀트리온', 'price': '310,000', 'code': '068270', 'category': 'kospi'}
댓글