- 수업 내용 리마인드 및 아카이빙 목적의 업로드
Q. 아래 페이지의 '종목명'과 '현재가'를 크롤링해주세요.
https://finance.naver.com/sise/sise_quant.nhn
- 결과 예시(순위, 종목명, 현재가)
1 KODEX 200선물인버스2X 5,270
2 KODEX 레버리지 12,680
3 삼성중공업 6,970
4 KODEX 인버스 6,095
5 KODEX 코스닥150선물인버스 6,220
6 삼성전자 54,500
7 두산인프라코어 6,250
8 KODEX 코스닥150 레버리지 10,010
9 미래산업 83
10 문배철강 3,060
A. ChatGPT에게 필요한 정보를 제공하고, 프롬프트를 통해 데이터를 출력하는 코드 작성 요청
1) 필요한 정보 제공하기
- 설명: HTML 전체 구조 스크립트를 txt파일로 제공합니다.
2) 프롬프트 작성 및 요청하기
너는 웹크롤링 전문가야. '실습 문항'을 읽고, 링크에서 "https://finance.naver.com/sise/sise_quant.nhn" 개발자도구(F12)를 활용하여, 정답 코드를 작성해줘.
#실습 문항
순위("no"), 종목명("title"), 현재가("number")를 크롤링해줘.
#원하는 출력 결과 예시 :
(순위, 종목명, 현재가)
1 KODEX 200선물인버스2X 5,270
2 KODEX 레버리지 12,680
3 삼성중공업 6,970
4 KODEX 인버스 6,095
5 KODEX 코스닥150선물인버스 6,220
6 삼성전자 54,500
7 두산인프라코어 6,250
8 KODEX 코스닥150 레버리지 10,010
9 미래산업 83
10 문배철강 3,060
#참고사항
코드의 시작은 아래의 내용으로 작성해줘.
"
import requests
from bs4 import BeautifulSoup
url = 'https://finance.naver.com/sise/sise_quant.nhn'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
"
#HTML 내용
"html 내용.txt"첨부
3) ChatGPT 답변 코드 확인하기
import requests
from bs4 import BeautifulSoup
url = 'https://finance.naver.com/sise/sise_quant.nhn'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
rows = soup.select('table.type_2 tr')
for row in rows:
rank = row.select_one('.no')
name = row.select_one('.tltle')
price = row.select_one('.number')
if rank and name and price:
rank_text = rank.get_text().strip()
name_text = name.get_text().strip()
price_text = price.get_text().strip()
print(f'{rank_text} {name_text} {price_text}')
- 설명:
- HTML 데이터 가져오기: requests.get을 사용하여 주어진 URL에서 HTML 데이터를 가져옵니다. 그런 다음 BeautifulSoup을 사용하여 HTML을 파싱합니다.
- 테이블의 각 행 선택: 'soup.select('table.type_2 tr')' 이 부분은 웹페이지에서 우리가 원하는 정보가 있는 곳을 찾는 역할을 합니다. 여기서는 주식 정보가 있는 표의 각 줄(tr)을 찾아서 rows라는 변수에 저장합니다.
- 순위, 종목명, 현재가 추출
- 이 부분에서는 각 줄(row)에서 우리가 원하는 정보(순위, 종목명, 현재가)를 찾아냅니다.
- rank, name, price라는 변수에 각각 순위, 종목명, 현재가를 저장합니다.
- if rank and name and price:는 이 세 가지 정보가 모두 있는 줄만 처리하도록 조건을 걸어줍니다.
- 각 정보는 .get_text()를 사용해 실제 텍스트로 바꿔주고, strip()을 사용해 필요 없는 공백을 제거합니다.
- 마지막으로 print(f'{rank_text} {name_text} {price_text}')를 사용해 순위, 종목명, 현재가를 화면에 출력합니다.
4) 출력 결과
1 KODEX 200선물인버스2X 2,185
2 SG세계물산 453
3 KODEX 코스닥150선물인버스 3,710
4 KODEX 레버리지 17,200
5 KODEX 코스닥150레버리지 9,075
6 삼부토건 1,029
7 GS글로벌 3,590
8 KODEX 인버스 4,360
9 흥아해운 2,685
10 진원생명과학 4,210
11 삼성전자 74,700
12 플레이그램 417
13 에이프로젠 1,651
14 삼성 인버스 2X WTI원유 선물 ETN 94
15 CJ씨푸드 3,920
16 사조씨푸드 7,750
17 삼성 인버스 2X 코스닥150 선물 ETN 6,535
18 TIGER 200선물인버스2X 2,310
19 한국ANKOR유전 450
20 삼성중공업 10,940
21 KODEX 200 35,175
22 TIGER 미국S&P500 18,070
23 KODEX 2차전지산업레버리지 2,170
24 한온시스템 3,800
25 SK하이닉스 171,500
26 사조동아원 1,078
27 현대약품 5,500
28 대한해운 2,030
29 에이프로젠바이오로직스 1,082
30 KODEX 코스닥150 12,805
31 국제약품 7,210
32 모나리자 3,495
33 대원전선 3,160
34 에스디바이오센서 12,750
35 TIGER 화장품 2,890
36 미래에셋 인버스 2X 코스닥150 선물 ETN 6,550
37 카카오 37,000
38 ACE 미국30년국채액티브(H) 8,695
39 한화손해보험 5,830
40 동양철관 916
41 TIGER 2차전지소재Fn 5,640
42 TIGER 미국테크TOP10 INDXX 19,130
43 두산에너빌리티 17,690
44 동방 3,030
45 TIGER 미국필라델피아반도체나스닥 17,155
46 TIGER 2차전지TOP10 10,105
47 LS에코에너지 28,000
48 SK이터닉스 18,760
49 TIGER 200 35,220
50 ACE 엔비디아밸류체인액티브 8,185
51 갤럭시아에스엠 2,105
52 TIGER 2차전지TOP10레버리지 2,165
53 대우건설 3,980
54 KODEX 미국30년국채울트라선물(H) 8,265
55 대성에너지 10,640
56 이수페타시스 39,100
57 KCTC 6,110
58 한국석유 21,600
59 SOL 금융지주플러스고배당 10,715
60 KODEX 미국나스닥100TR 16,735
61 KB 인버스 2X KOSDAQ 150 선물 ETN 6,560
62 씨에스윈드 62,500
63 한화솔루션 25,050
64 KODEX 2차전지산업 15,560
65 KODEX 미국S&P500TR 16,510
66 우리금융지주 14,670
67 휴니드 9,280
68 RISE 미국30년국채엔화노출(합성 H) 9,440
69 명문제약 2,550
70 삼성 레버리지 천연가스 선물 ETN C 4,235
71 TIGER 리츠부동산인프라 4,655
72 한화시스템 19,360
73 KoAct 배당성장액티브 9,690
74 SOL 조선TOP3플러스 13,210
75 에코프로머티 83,300
76 제이알글로벌리츠 3,680
77 KODEX 미국30년국채+12%프리미엄(합성 H) 10,435
78 대한전선 13,310
79 백광산업 9,200
80 팬오션 3,660
81 일신석재 1,265
82 한미반도체 108,500
83 한국가스공사 41,400
84 KODEX AI전력핵심설비 8,625
85 시프트업 71,600
86 현대로템 46,250
87 한국콜마 66,300
88 삼성 레버리지 WTI원유 선물 ETN 1,479
89 삼일제약 11,000
90 LG유플러스 9,610
91 한국전력 19,040
92 신한 인버스 2X WTI원유 선물 ETN(H) 82
93 한화투자증권 3,470
94 TIGER 차이나전기차SOLACTIVE 6,720
95 KC코트렐 806
96 TIGER Fn반도체TOP10 11,035
97 GS건설 19,130
98 KT&G 100,600
99 KODEX CD금리액티브(합성) 1,044,690
100 신한지주 54,000
'+ 개발' 카테고리의 다른 글
비동기 웹 크롤링(#무신사)_Gen.AI (0) | 2024.08.13 |
---|---|
API 요청 찾는 방법 (0) | 2024.08.13 |
동기 웹과 비동기 웹의 차이(ft.데이터 크롤링) (0) | 2024.08.13 |
웹 크롤링(#Requests #BeautifulSoup) (0) | 2024.08.11 |
파이썬 기초(ft.LLM) (0) | 2024.08.09 |