-
국민연금 주식 리스트 파이썬 코드카테고리 없음 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 라이브러리를 사용합니다.