from selenium import webdriver
import chromedriver_autoinstaller
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
import csv
list_result = []
# 1부터 n-1페이지까지
for page_num in range(1, 3):
# 브라우저 접속
driver = webdriver.Chrome('')
time.sleep(1.5)
for i in range(1, 21): # 20행까지
# 행 변수 추출
# 기업명
c_name = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(1) > a > font')
var1 = c_name[0].text
# 상장일
date = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(2)')
var2 = date[0].text
# 현재가
price_now = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(3)')
var3 = price_now[0].text
# 공모가
public_off = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(5)')
var4 = public_off[0].text
# 시초가
price_start = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(7)')
var5 = price_start[0].text
# 첫날종가
price_first_end = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(9)')
var6 = price_first_end[0].text
# 하나의 행으로 저장해 result에 행을 쌓기
list_1 = [var1, var2, var3, var4, var5, var6]
list_result.append(list_1)
# CSV 파일에 데이터 쓰기
csv_file_path = 'IPO_yield.csv'
with open(csv_file_path, 'w', newline='', encoding='utf-8-sig') as csvfile: # utf-8-sig : 엑셀에서 한글 깨짐 방지
csv_writer = csv.writer(csvfile)
# 헤더 작성
header = ['기업명', '상장일', '현재가', '공모가', '시초가', '첫날종가']
csv_writer.writerow(header)
# 데이터 작성
for row in list_result:
csv_writer.writerow(row)
print(f'Data saved to {csv_file_path}')
'Python' 카테고리의 다른 글
| 크롤링 방지 우회 (2) | 2024.02.03 |
|---|---|
| 38커뮤니케이션 (신규상장종목_상세페이지) 크롤링 (0) | 2024.02.01 |
| 펀드슈퍼마켓 (전체펀드 세부사항_기간수익률) 크롤링 (0) | 2024.02.01 |
| 펀드슈퍼마켓 (전체펀드) 크롤링 (2) | 2024.02.01 |
| 펀드가이드 (TOP펀드) 크롤링 (0) | 2024.02.01 |