국민연금 주식 리스트 파이썬 코드 :: 에버노트

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 국민연금 주식 리스트 파이썬 코드
    카테고리 없음 2023. 7. 13. 13:41

    https://fund.nps.or.kr/jsppage/fund/prs/policy09.jsp
    국민연금 기금 주식 매수 관련하여 엑셀에서 다운 받았습니다. 
    발행기간 종목명 번호로 파이썬 코드를 만들었습니다. chatgpt로 코드를 만들었습니다. 

    import requests
    from bs4 import BeautifulSoup
    
    
    def crawl_stock_info(codes):
        for code in codes:
            url = f"https://finance.naver.com/item/main.naver?code={code}"
            response = requests.get(url)
            soup = BeautifulSoup(response.text, 'html.parser')
    
            # 종목 정보 크롤링
            stock_name_element = soup.find('a', {'onclick': "clickcr(this, 'sop.title', '', '', event);window.location.reload();"})
            stock_name = stock_name_element.text.strip() if stock_name_element else "정보를 찾을 수 없습니다."
    
            current_price_element = soup.find('p', {'class': 'no_today'}).find('span', {'class': 'blind'})
            current_price = current_price_element.text.strip() if current_price_element else "정보를 찾을 수 없습니다."
    
            # 크롤링한 결과 출력
            print(f"종목명: {stock_name}") 
            print(f"현재 가격: {current_price}")
            print("==============================")
    
    
    # 입력값 설정
    codes = [
        "000080", "001430", "011070", "012450", "034020", "042660", "055550", "069960", "074600",
        "141080", "009420", "010140", "011790", "042660", "047050", "352820", "011070", "272290", "001230",
        "006400", "166090", "010690", "013030", "016380", "039030", "043370", "049070", "064290", "067310",
        "082740", "095340", "101360", "108320", "237880", "241710", "298380", "425040", "453340", "456040",
        "460850", "460860", "000150", "000490", "000640", "001120", "001680", "002380", "002790", "003030",
        "003090", "004170", "004800", "005070", "005440", "005850", "006650", "007660", "008770", "009540",
        "010060", "010120", "011760", "012750", "014830", "023160", "031430", "032350", "032640", "033500",
        "034120", "035250", "035900", "036420", "036570", "039130", "042670", "051600", "051900", "052710",
        "053210", "054950", "067160", "069260", "069620", "078930", "090430", "093370", "097520", "101490",
        "103140", "104830", "105630", "112610", "114090", "119610", "120110", "122870", "125210", "126340",
        "131970", "139480", "161890", "178320", "178920", "192820", "195870", "213500", "228670", "237690",
        "241560", "241590", "248070", "267270", "272210", "272450", "284740", "298000", "298040", "298050",
        "306200", "319660", "352480", "353200", "361610", "452260"
    ]

    # 결과 물
    종목명: 아모그린텍
    현재 가격: 16,980
    ==============================
    종목명: 비나텍
    현재 가격: 64,400
    ==============================
    종목명: 두산테스나
    현재 가격: 46,600
     
    #코드 설명
    requests: 웹 페이지에 HTTP 요청을 보내기 위한 라이브러리입니다.
    BeautifulSoup: HTML 구문 분석을 위한 라이브러리입니다.

    함수 crawl_stock_info:
    이 함수는 종목 코드를 입력받아 해당 종목의 정보를 크롤링하는 역할을 합니다.
    codes 리스트의 각 코드에 대해 반복문을 수행합니다.

    f" https://finance.naver.com/item/main.naver?code= {code}"와 같이 입력된 종목 코드로부터 주소를 생성합니다.

    requests.get(url)를 사용하여 해당 주소로 GET 요청을 보냅니다.
    BeautifulSoup을 사용하여 응답으로 받은 HTML 페이지를 파싱합니다.

    종목 정보 크롤링:
    종목명을 크롤링하기 위해 stock_name_element 변수에 find() 메서드를 사용하여 해당 요소를 찾습니다. 여기서는 <a> 태그를 선택합니다.

    현재 가격을 크롤링하기 위해 current_price_element 변수에 find() 메서드를 사용하여 해당 요소를 찾습니다. 여기서는 <p> 태그의 class가 "no_today"인 요소를 선택합니다.

    크롤링한 결과 출력:
    stock_name_element과 current_price_element 변수에 값이 존재하는지 확인한 후, .text.strip()을 사용하여 해당 요소의 텍스트를 가져옵니다. 만약 요소가 존재하지 않는다면 "정보를 찾을 수 없습니다."라는 문구를 출력합니다.

    최종적으로 종목명과 현재 가격을 출력합니다.

    입력값 설정 및 실행:
    codes 리스트에 원하는 종목 코드들을 추가하여 설정합니다.
    crawl_stock_info(codes)를 호출하여 크롤링을 실행합니다.
    이렇게 코드를 실행하면 입력한 종목 코드들에 대한 정보를 크롤링하여 출력합니다. 코드는 각 종목의 웹 페이지에 접속하여 해당 정보를 추출하기 위해 requests와 BeautifulSoup 라이브러리를 사용합니다.
     
     
     

    댓글

Designed by Tistory.