반응형

파이썬(Python)/웹스크롤링 13

[Python] Request Post Get 함수 사용법 및 예제 실습

목차 이번 시간에는 클라이언트(Client)가 웹서버로 보내는 요청 중 GET과 POST에 대해 알아보고 어떻게 사용하는지에 대해 알아보도록 하겠습니다. 파이썬(Python) Request GET 사용법 GET은 HTTP의 Method 중 하나로 페이지에 대한 정보를 요구하는 Method라고 생각하시면 됩니다. 파이썬에서 사용하는 방법은 아래와 같습니다. requests.get(접속할 웹주소, 파라미터, 타임아웃시간) 위와 같이 입력 값으로 접속하고자하는 웹주소와 보내고 싶은 정보를 파라미터에 넣고 웹서버가 반응을 하지 않는 다면 타임아웃시간 이후에 연결을 끊습니다. 여기서 파라미터와 같은 값들을 GET에서도 보낼 수 있지만 간단한 내용을 보내는 것이 가능 하고 POST와 다르게 GET은 암호화가 되지 ..

[Python] RE 모듈로 미세먼지 데이터 필터링하기(정규표현, 특수문자)

목차 미세먼지(PM10, PM25) 정보 가져오기 앞서 포스트에서 미세먼지 정보를 공공 데이터 포털에서 API를 사용해서 가져오는 방법에 대해 알아보았습니다. (https://scribblinganything.tistory.com/530) 상세 내용은 링크를 통해 확인하시면 됩니다. 결과는 아래와 같이 나왔습니다. 이번 포스트는 아래 결과를 사용해서 파이썬에서 제공하는 정규표현 함수 re 함수를 사용해서 원하는 결과를 가져오는 방법에 대해 알아보겠습니다. 미세먼지 결과>> 00 NORMAL_CODE 1 72 0.003 0.4 2 27 2 24 서울 1 2 2022-05-30 08:00 1 0.019 중구 1 0.040 #####생략##### 100 1 40 정규표현라이브러리 RE 기본 사용법(REGEX)..

[Python] 공공데이터포털에서 미세먼지 데이터 가져오기(크롤링, fine dust, API, 파이썬)

목차 이번 시간에는 파이썬을 사용해서 공공데이터 포탈의 API에 접속해서 미세먼지 정보를 가져오는 방법에 대해 알아보겠습니다. API(Application Programming Interface) 란? API란 데이터회사나 웹서버(Web server) 회사에서 제공하는 리모콘과 같은 것입니다. 사용자는 리모콘의 동작 방법을 이해하지는 못하지만 리모콘을 통해서 웹 서버 회사가 제공하는 데이터를 손쉽게 접근할 수 있게 되는 것입니다. 여기서 공공데이터 포탈은 API를 통해 미세 먼지 정보를 손쉽게 제공 합니다. 공공데이터포탈에서 API 요청하기 우선 구글에서 공공데이터포털로 검색하거나 https://www.data.go.kr/ 에 접속합니다. 정부기관 홈페이지므로 go.kr로 끝나는지 꼭 확인하시길 바랍니다..

[Python]Selenium BluetoothAvailability()에러 해결 방법 (usb_device_handle_win)

목차 [Python]Selenium BluetoothAvailability() 문제 현상 코드>> from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get('http://www.g2b.go.kr/index.jsp') 위 코드를 구현 하였고 아래와 같이 에러 메세지가 발생하였습니다. 에러메세지>> [3740:8148:0124/084133.199:ERROR:chrome_browser_main_extra_parts_metrics.cc(227)] START: ReportBluetoothAvailability(). If you don't see the END: message, this is crbug...

[Python] 네이버 금융 주식 정보 가져오기 (ex. 삼성전자)

목차 [Python] 네이버 금융 주식 정보 가져오기 : pykrx 모듈 소개 BS4나 Selenium이나 Pandas의 html read 함수를 사용해서 주식 정보를 가져오려고 시도 했다면 그 과정이 만만치 않음을 알 수 있습니다. pykrx 모듈은 네이버금융(Naver finance)와 KRX 정보 데이터 시스템에서 주가 정보를 지속적으로 스크래핑(scraping) 하고 Github에서 업데이트 해줍니다. 해당 API를 사용하면 단 한줄로 주가 정보를 쉽게 가져 올 수 있습니다. pykrx의 상세 사용법을 알고 싶다면 위에 링크를 클릭해서 확인하시면 됩니다. pykrx를 사용하기 위해서는 아래와 같이 설치를 해주어야 합니다. pip install pykrx [Python] 네이버 금융 주식 정보 가져..

[Python] yfinance로 고점대비 하락율 그래프 그리기 (코스피, 코스닥, MDD)

목차 [Python] yfinance로 고점 대비 하락율 그래프 그리기 : 배경 지식 yfinance 는 야후파이낸스(Yahoo finance)에 나와 있는 데이터를 파이썬으로 쉽게 이용할 수 있게 만들어진 라이브러리 입니다. 이번 포스트의 목적은 yfinance를 사용해서 코스피(Kospi) 의 1년 간에 종가 데이터를 가져와서 고정 대비 하락율을 계산하는 MDD(Maximum Draw Down)와 DD(Draw Down)을 구해서 matplotlib 라이브러리를 사용해서 그래프로 표현할 생각 입니다. 개인적으로 주식을 하는데 MDD가 6프로 이상 떨어질때 주식을 구입하기 위해 해당 코드를 작성 했습니다. 필요하신 분들은 아래 코드를 통해 성투하시길 바랍니다 ㅎ 앞서 언급한 라이브러리에 대해 자세히 알..

[Python] yfinance 함수 사용법 정리 (코스피,테슬라)

목차 [Python] yfinance 함수: 차트 정보 가져오기 파이썬 yfinance 함수를 사용해서 야후 파이낸스(Yahoo Finance)의 차트(Chart)의 주가 정보를 가져오겠습니다. (시작가, 종가, etc). yfinance 는 판다스(Pandas)의 Dataframe 함수를 지원합니다. Pandas는 테이블 형식으로 데이터를 정리하여 여러 처리를 쉽게 해주는 라이브러리라고 생각하시면 됩니다. yfinance의 return으로 나온 결과 값은 dataframe 형태이므로 추후에 데이터 분석을 할 경우 dataframe의 내부 함수들을 알고 있다면 쉽게 변경 사용할 수 있습니다. 코드 실행에 앞서 아래와 같이 라이브러리 설치를 합니다. pip install pandas_datareader p..

[Python] BS4로 네이버금융 종목분석-재무분석 값 가져오기

목차 [Python] BS4로 네이버금융 종목분석 : 사용 소프트웨어, 설치 이번 포스트에서는 웹스크롤링(Web scrawling) 기술로 네이버금융의 재무제표 항목들을 가져올 것 입니다. 웹 스크롤링에 이용할 라이브러리는 뷰티풀숩(BeautifulSoup, BS4) 라고 불리는 모듈입니다. 우선 저는 Visual Studio Code 라는 마이크로 소프트웨어에서 출시한 프로그램으로 파이썬을 작성합니다. 만일 설치가 되어있다면 명령 Prompt에 아래와 같이 입력하면 BS4를 설치할 수 있습니다. pip install bs4 우선 정상적으로 설치 되었는지 간단하게 확인하는 방법은 아래와 같이 import를 하고 run 시켜 보면 됩니다. from bs4 import BeautifulSoup 만일 동작을 ..

selenium 에러발생 시 해결방법 "selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element"

Xpath 검색 시 문제 사항 나라장터 사이트에서 검색을 통해 들어간 페이지에서 text를 가져오려고 하는 파이썬 셀레니움(selenium)을 실행하는 코드를 작성하였다. 하지만 xpath를 통해 검색하였으나 아래와 같은 에러메세지와 함께 코드가 동작되지 않았다. selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element 내가 해결한 방법을 공유하겠다. 공유하기에 앞서 동일한 에러메세지라도 상황에 따라 내 해결책이 적용되지 않을 수 있음을 감안하길 바란다. 해결 코드>> import time from selenium import webdriver driver = webdriver.C..

파이썬(Python) Selenium Click() 동작이 안될 때

예약 사이트를 자동화로 만드는 과정에서 몇 몇 버튼이나 a, href 링크들이 클릭이 안되는 경우들이 종종 있었다. element click intercepted ElementClickInterceptedException is not clickable at point 위 와 같은 메세지가 발생하거나 다운이되는 현상들이 있었다. 내가 예약사이트 자동화중에 만난 경우들을 아래와 같이 정리하고 해결 했던 방법도 정리해 보았다. Case 1 그림1과 같이 화면의 아래 김해CC를 클릭하고 날짜를 클릭 후에 예약하기 버튼을 눌러야 하여서 아래와 같이 코드를 짰다. kimhae_check = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((B..

반응형