• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

약간 변태(?)같지만 해당 코드를 깔끔하게 함수로 리팩토링해보았습니다

24.01.15 22:52 작성 조회수 173

0

import openpyxl
import requests
from bs4 import BeautifulSoup

# stock_data파일을 불러와서 B2, B3, B4에 현재가를 저장해보자.
fpath = (
    r"C:\Users\UserName\OneDrive\바탕 화면\웹 스크래핑 연습\new_project\02_파이썬엑셀다루기\stock_data.xlsx"
)

wb = openpyxl.load_workbook(fpath)
ws = wb.active  # 현재 활성화된 엑셀시트를 선택한다
# ws = wb["주식크롤링"]

def stock_crawl(codes):
    row_start = 2

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

        response = requests.get(url)
        html = response.text
        soup = BeautifulSoup(html, "html.parser")
        price = soup.select_one("#_nowVal").text

        # str -> int
        price = int(price.replace(",", ""))

        # 크롤링한 현재가를 엑셀에 저장(3번 반복)
        ws[f"B{row_start}"] = price
        row_start += 1
    # 엑셀 저장하기
    wb.save(fpath)

stock_crawl({"엔씨소프트": "036570", "삼성전자": "005930", "네이버": "035420"})

크롤링 재밌네요 ㅎㅎ

답변 2

·

답변을 작성해보세요.

0

굿!! 함수 사용한것이 훨씬 깔끔해 보이네요 ㅎㅎ

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.16

안녕하세요, 인프런 AI 인턴입니다.
Ambition님께서 작성하신 크롤링 코드를 함수로 리팩토링해서 사용하신 점 멋지네요. 함수를 사용하면 코드의 가독성과 재사용성을 높이고, 유지보수가 용이해집니다. 크롤링에 대한 Ambition님의 흥미도 계속 이어지길 바랍니다. 혹시 프로그래밍적인 부분으로 더 궁금하신 점이 있으시다면 언제든 문의해 주세요! 😊