본문 바로가기

웹 스크래핑

파이썬 웹 크롤링 comp.fnguide 재무 데이터 가져오기: pd.read_html() 전업 개발자가 아닌 분들도 파이썬 웹 스크래핑/크롤링에 관심 많은 것 같습니다. 아무래도 다른 분야보다 활용할 수 있는 곳이 다양하기 때문이 아닌가 싶습니다. 그중에서도 특히 개인 투자자 분들이 더 적극적이라는 느낌을 받습니다. 최근에 지인으로부터 재무제표를 수집할 수 있는 방법에 대해서 질문을 받았고, 관련해서 해당 내용을 좀 찾아봤습니다. 네이버 블로그에 이미 해당 내용이 잘 정리된 글이 있어서, 그 코드에 pd.read_html()을 덧붙여 보았습니다. 종목코드만 입력하고 코드를 실행하면 해당 기업의 재무 정보를 판다스 데이터프레임 형태로 가져올 수 있습니다. https://blog.naver.com/htk1019/221266979613 파이썬 웹 스크레이퍼 만들기 8편. Fnguide 데이터가져오.. 더보기
파이썬으로 뉴스 알림 텔레그램 봇 만들기(3): 매 시간 메시지 보내기 글 순서 (1) 사이트 구조 살펴보기, 뉴스 링크 수집하기 (2) 봇 만들기, 새로운 뉴스 링크만 추출하기 (3) 스케쥴러 만들기, 매 시간 메시지 보내기 이번에는 프로그램 종료 전까지 매 시간 새로운 뉴스를 전송해주는 봇을 만들겠습니다. 여러 가지 스케줄러를 사용할 수 있겠지만 사용이 손쉬운 APScheduler 라이브러리를 사용하겠습니다. 파이썬 스케줄러 만들기 스케줄러는 컴퓨터에서 원하는 작업을 특정 시간/주기에 실행할 수 있도록 일정을 관리해줍니다. 여러 가지 스케줄러가 있지만 매우 간단한 수준의 일정관리면 충분하기 때문에 파이썬 라이브러리를 이용하겠습니다. 스케줄러에게 시킬 일을 다음과 같습니다. 1. 한 시간마다 2. 뉴스 링크를 수집하고 3. 새로운 링크가 있으면 텔레그램 메시지를 나에게 보.. 더보기
파이썬으로 뉴스 알림 텔레그램 봇 만들기(2): 새로운 뉴스 링크만 추출하기 글 순서 (1) 사이트 구조 살펴보기, 뉴스 링크 수집하기 (2) 봇 만들기, 새로운 뉴스 링크만 추출하기 (3) 스케쥴러 만들기, 매 시간 메시지 보내기 이번에는 텔레그램 봇을 생성하고, 이전 시간에 작성했던 뉴스 스크래핑 코드를 수정하겠습니다. 새로운 뉴스가 있으면 해당 링크만 리스트로 결과를 반환하고 만약 새로운 뉴스가 없다면 빈 리스트를 반환하도록 작성하겠습니다. 텔레그램 봇 만들기 우선 텔레그램 봇을 만들겠습니다. 텔레그램을 열고 BotFather를 검색합니다. 채팅창이 열리면 /start 를 입력하면 봇을 생성하고 관리할 수 있는 안내 문구를 띄어줍니다. 우리는 처음 봇을 만드는 입장이니까 /newbot이라고 입력하면 됩니다. 안내에 따라서 bot name과 username을 입력합니다. 모두.. 더보기
파이썬으로 뉴스 알림 텔레그램 봇 만들기(1): 뉴스 링크 수집하기 특정 업무나 투자 활동을 하는 경우 뉴스를 지속적으로 확인해야 하는 일들이 있습니다. 예를 들어 회사에서 IR, PR 업무를 담당하는 경우가 해당합니다. 또는 특정 주식 종목 등의 뉴스를 체크할 수도 있겠네요. 이번부터 세 차례에 걸쳐서 내가 원하는 특정 검색어를 기준으로 모바일 네이버 뉴스를 한 시간마다 푸시해주는 텔레그램 봇을 만드는 방법을 알아보겠습니다. 글 순서 (1) 사이트 구조 살펴보기, 뉴스 링크 수집하기 (2) 봇 만들기, 새로운 뉴스 링크만 추출하기 (3) 스케쥴러 만들기, 매 시간 메시지 보내기 사이트 구조 살펴보기 사이트 구조를 살펴보고 원하는 키워드로 뉴스 기사 링크를 수집하는 코드를 작성해 보겠습니다. 웹 스크래핑을 할 때 알아두면 좋은 한 가지 팁 모바일 사이트 버전을 찾아보는 .. 더보기
파이썬 크롤링: BeautifulSoup에서 CSS selector를 사용하는 방법 파이썬에는 BeautifulSoup이라는 HTML 문서 분석 라이브러리가 있습니다. 이를 이용하면 HTML 문서에서 손쉽게 내가 원하는 정보를 추출할 수 있습니다. 오늘은 BeautifulSoup이 제공하는 여러 가지 유용한 기능 중, CSS 선택자를 매개변수로 받는 select() 메서드에 대해서 알아보겠습니다. 실습 페이지는 영문 위키피디아의 베네딕트 컴버배치 페이지를 사용하겠습니다. 페이지 불러오기 실습에 필요한 HTML 문서와 soup 객체를 준비합니다. # 라이브러리를 불러옵니다. import requests from bs4 import BeautifulSoup # 페이지를 받아와 soup 객체로 만듭니다. url = "https://en.wikipedia.org/wiki/Benedict_Cum.. 더보기
[파이썬] 웹 크롤링: 코드 10줄로 HTML을 Text로 변환하기 종종 웹 사이트에서 텍스트를 가져와야 할 때가 있습니다. 간단한 파이썬 코드를 이용해서 HTML 문서를 일반 텍스트로 가져오는 방법을 알아보겠습니다. import requests from bs4 import BeautifulSoup url = 'https://news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=105&oid=001&aid=0011343153' html = requests.get(url) soup = BeautifulSoup(html.text) # find_all 함수에 매개변수로 리스트를 전달합니다. # 다음 코드는 HTML 문서의 모든 'script', 'style', 'header', 'footer', 'form' 태그를 반환합니다. script.. 더보기
웹 페이지 텍스트 추출해서 단어 빈도수 세기 예제 웹 페이지에서 텍스트를 추출하고 단어별 빈도수를 세어보겠습니다. 불용어 등을 처리하지 않은 간단한 버전입니다. 1. 웹 페이지에서 텍스트 추출하기 - 이번 예제에서 사용할 텍스트는 이란의 미사일 발사에 대한 트럼프 대통령의 연설문입니다. import requests from bs4 import BeautifulSoup url = 'https://www.voanews.com/middle-east/voa-news-iran/full-text-trumps-speech-iran' html = requests.get(url) soup = BeautifulSoup(html.text) content = soup.select_one('.article__body p:nth-child(2)').get_text() print.. 더보기
파이썬을 이용해서 단어 빈도 세기: 이 글의 주요 내용은 무엇일까? 긴 문서를 읽다 보면 한 번씩 '아 귀찮다'라는 생각이 듭니다. 누가 와서 간단히 요점만 말해주면 좋을 것 같습니다. 글의 주요 내용을 어떻게 하면 간단히 알아챌 수 있을까요? 이렇게 생각해 볼 수 있을 것 같습니다. 글쓴이는 말하고자 하는 내용을 강조하기 위해 특정 단어들을 더 많이 사용했을 것이다. 이제 남은 일은 단어들이 언급된 빈도를 세어보는 일입니다. 하지만 단어 빈도를 세는 일은 사람이 하기에는 적합한 일이 아닙니다. 컴퓨터가 하기에 적합한 일이죠. 파이썬에게 문서 내의 각 단어의 빈도를 세어달라고 하겠습니다. 이번 글에서는 2020년 대통령 신년사로 빈도 분석을 해보았습니다. 한나눔 형태소 분석기로 명사만을 추출했습니다. 상위 단어를 보면 것(할 것, 될 것, 갈 것 등), 수(할 수, 갈 .. 더보기