인프런 커뮤니티 질문&답변

강현명님의 프로필 이미지
강현명

작성한 질문수

[2024 개정판] 이것이 진짜 크롤링이다 - 기본편

-

질문 드립니다..

작성

·

198

1

import requests
from bs4 import BeautifulSoup
import openpyxl

fpath = r"C:\Users\OWNER\Desktop\python\주.xlsx"
wb = openpyxl.load_workbook(fpath)
ws = wb.active

codes = [
    '005930',
    '000660',
    '035720'
]

row = 2
for code in codes :
    url = f"https://finance.naver.com/item/sise.naver?code={codes}"
    response = requests.get(url)
    html = response.text
    soup = BeautifulSoup(html,'html.parser')
    price = soup.select_one('#_nowVal').text
    price = price.replace(',','')
    print(price)
    ws[f'B{row}'] = int(price)
    row = row + 1
   
   
wb.save(fpath)

어떤오류인지 알 수가 없어서요..

 

 

답변 2

0

스타트코딩님의 프로필 이미지
스타트코딩
지식공유자

안녕하세요.

 

코딩을 가장 쉽게 알려주는 크리에이터 스타트코딩입니다. 

 

오타가 하나 있습니다.

url = f"https://finance.naver.com/item/sise.naver?code={codes}"

리스트 변수인 codes 대신,

리스트의 원소 하나를 나타내는 code 로 바꿔 주셔야 합니다. 

 

 

감사합니다. 

좋은 하루 되세요 ^^

- 스타트코딩 드림.

0

강현명님의 프로필 이미지
강현명
질문자

 

Traceback (most recent call last):

  File "c:\Users\OWNER\Desktop\python\ex_naverfinance.py", line 24, in <module>

    ws[f'B{row}'] = int(price)

ValueError: invalid literal for int() with base 10: ''

강현명님의 프로필 이미지
강현명

작성한 질문수

질문하기