본문 바로가기

파이썬

파이썬 네이버 뉴스 기사 크롤링하기: 초보자도 실행할 수 있는 코드 이전에 뉴스 알림 봇을 만드는 내용을 작성했던 적이 있습니다. 당시에는 네이버 모바일 버전에서 뉴스 기사를 가져오는 방법을 사용했었는데, PC 버전에서는 어떻게 할 수 있는지 여쭤보시는 분이 계셔서 이번 글을 작성하게 되었습니다. 주피터 노트북만 설치되어 있다면 초보자도 따라서 실행할 수 있는 코드니까, 한번 실행해보시면 재미있을 거예요. 파이썬 설치 방법이 궁금하시다면 이 글은 참고해주세요. [파이썬] 파이썬 아나콘다 설치 방법, 파이썬 설치 방법 오늘은 파이썬 아나콘다를 설치하는 방법을 알아보겠습니다. 파이썬은 공식 홈페이지인 python.org에서 무료로 다운로드할 수 있지만 업무 자동화, 데이터 분석 등과 같은 일을 하기 위해서는 많은 추가 라이브러.. hogni.tistory.com 주피터 노트.. 더보기
파이썬으로 일봉 주식 데이터 가져오기: pandas-datareader 파이썬에는 국내외 일단위 주식 데이터를 제공해주는 라이브러리들이 있습니다. 그중 대표적인 pandas-datareader를 사용하는 방법을 알아보겠습니다. 이 라이브러리를 이용하면 다양한 데이터 소스로부터 정보를 받아 올 수 있습니다. 보통 많이 이용되는 데이터 소스는 yahoo finance입니다. 코드 패턴 import pandas_datareader as pdr pdr.get_data_yahoo('종목 코드', start='시작 시점', end='종료 시점') 어떤 종목의 일별 주가 데이터를 조회하기 위해서는 딱 세 가지 변수만 입력하면 됩니다. 이때 한 가지 주의할 점은 미국과 우리나라의 '종목 코드' 입력 방법이 다르다는 점입니다. 미국의 경우 알파벳을 사용하고 있으며, 우리나라의 경우 6자리 .. 더보기
[웹크롤링] URL에 한글을 넣었더니 문제가 발생했다: 퍼센트 인코딩(percent-encoding)을 알아보자 웹브라우저에서 지금 보고 있는 사이트의 주소를 복사해서 다른 곳에 붙여 넣었더니, 한글은 온데간데없이 사라지고 왠 %로 시작하는 이상한 문자가 대신 들어가 있는 것을 본 적이 있으신가요. 바로 URL 인코딩 때문입니다. 파이썬으로 크롤링을 진행할 때도 이 한글이 종종 문제가 되는데요. 오늘은 그 해결 방법을 알아보겠습니다. 퍼센트 인코딩이란 퍼센트 인코딩(percent-encoding)은 URL에 문자를 표현하는 문자 인코딩 방법으로 영문자, 숫자, 몇몇 기호만을 사용하여 문자를 나타냅니다. 이 외에 한글, 한자, 특수문자 등은 사용할 수 없습니다. 때문에 파이썬에서 한글 포함된 URL 주소에 요청을 보내면 오류가 발생하게 됩니다. 다행히 이 오류를 피하는 방법이 있습니다. 첫 번째 방법은 한글 텍스트를.. 더보기
크롤링이 차단되었다면 유저 에이전트(User Agent)를 지정해보자, 크롤링 차당 방지법 크롤링을 하다 보면 종종 페이지에서 아무것도 받아오지 못해서 막히는 경우가 생깁니다. 여러 가지 이유가 있을 수 있겠지만 본인이 잘못한 게 없다면 대개 서버에서 차단을 당했기 때문입니다. 서버는 User Agent 검사 등의 방법으로 일반 사용자(사람)와 봇을 구분하여 차단할 수 있습니다. 사람이 아니라고 의심이 되면 접속을 차단하는 것입니다. 봇이 악의적인 목적을 가지고 서버에 많은 부하를 주어 다른 사람들이 피해를 입으면 안 되니까요. 그렇다면 해결 방법은 사람인 척하는 것입니다. 이때 가장 쉬운 방법은 Header에 User Agent 정보를 만들어서 보내는 겁니다. 유저 에이전트란 브라우저가 웹사이트에 연결을 시작할 때 전달되는 기기 정보로 브라우저의 유형, 운영체제 등의 정보가 담겨있습니다. 예.. 더보기
파이썬으로 미국 주가 데이터 가져오기: yfinance 라이브러리 사용법 파이썬에는 과거 주가부터 현재 주가까지 데이터를 조회 및 다운로드할 수 있는 yfinance라는 좋은 라이브러리가 있습니다. 기본 사용 방법 종목코드를 사용해서 Ticker 객체를 만들면 해당 종목에 대한 여러가지 정보를 확인할 수 있습니다. Ticker란 종목 코드를 뜻하며 미국의 경우에는 알파벳을 사용하고 있습니다. 예를 들어 구글은 GOOG, 애플은 AAPL, 코카콜라는 KO로 표기합니다. 우리나라의 경우는 여섯 자리 숫자를 사용하고 있습니다. 코스피 대장주 삼성전자의 종목코드는 005930입니다. # 라이브러리를 불러옵니다. import yfinance as yf import pandas as pd # Ticker(종목코드) 객체를 생성합니다. apple = yf.Ticker("AAPL") # 회.. 더보기
파이썬 xlwings 엑셀 창 없이 작업하는 방법: 엑셀을 데이터프레임으로 읽어오기 python xlwings 라이브러리를 이용해서 엑셀에 데이터를 읽고 쓸 때 기본적인 세팅은 엑셀 창이 열리도록 되어있습니다. 하지만 종종 이 창을 띄우지 않고서 작업을 하고 싶은 마음이 들 때가 있습니다. 예를 들어 간단히 엑셀 파일에서 데이터만 읽어오면 되는 상황이 그렇습니다. 오늘은 엑셀 창 없이 xlwings 라이브러리를 이용해서 데이터를 판다스 데이터프레임 형태로 읽어오는 방법을 알아보겠습니다. 창 없이 xlwings를 사용하는 코드 패턴 xlwlings의 객체는 크게 다음과 같은 네 가지 유형이 있습니다. 객체의 계층 구조 순서대로 나열하면 App(엑셀 인스턴스), Book, Sheet, Range와 같습니다. 보통의 경우 xw.Book(파일명)를 바로 사용하여 엑셀 파일을 읽어왔지만, 창 없.. 더보기
파이썬 이미지 크롤링: 코드 세줄로 이미지 다운로드 받기 오늘은 딱 세줄의 코드로 웹 사이트에서 이미지를 다운로드하는 방법을 알아보겠습니다. 이미지 url을 이용해서 내 컴퓨터에 저장하는 방법은 여러 가지가 있지만 이 방법이 아마 가장 손쉬운 방법일 거라 생각합니다. 필요한 준비물은 다음과 같습니다. 1. 아나콘다가 설치된 주피터 노트북 환경 2. 다운로드하고자 하는 이미지 url 이미지 크롤링 코드 패턴 아래 코드를 실행시키면 현재 스크립트가 있는 위치와 동일한 폴더에 이미지가 저장되는 것을 확인할 수 있습니다. import urllib.request url = 이미지 url urllib.request.urlretrieve(url, '파일 이름') 예를 들어 아마존에서 상품 이미지를 다운로드하고 싶다면, 이미지 url을 알면 컴퓨터에 저장할 수 있습니다. 크.. 더보기
파이썬 변수의 사용 범위: 전역 변수(global variables), 지역 변수(local variables) 파이썬에서 변수는 이름 공간(namespace)에서 관리됩니다. 이름 공간은 변수의 이름을 정의해 둔 공간으로 크게 전역 이름 공간과 지역 이름 공간으로 나누어집니다. 전역 변수(global variables) 전역 변수는 함수 밖의 전역 공간에서 선언된 변수입니다. 따라서 함수 내부를 포함하여 스크립트 어디서든 접근할 수 있습니다. 전역 변수 만들기 x = "global" def do(): print("함수 내부의 x:", x) do() print("전역 공간의 x:", x) """ 함수 내부의 x: global 전역 공간의 x: global """ 이번에는 함수 내부에서 전역 변수 x의 값을 바꿔보겠습니다. x = "global" def do(): x = x * 3 print(x) do() """ U.. 더보기