이번 시간은 웹을 직접 켜야지만 데이터를 받을 수 있는 동적 웹페이지 크롤링을 해보겠습니다. (오피넷 관계자님 혹시 너무 트래픽이 많아지는 것 같으면 말씀 주세요... 근데 조회수가 적어서 그럴 일은 없을 겁니다..ㅠ) 웹 스크래핑을 하다 보면, 단순히 URL만 요청해서는 원하는 데이터를 얻을 수 없는 사이트들을 자주 만나게 됩니다.로그인이 필요하거나, 버튼을 클릭해야 데이터가 나타나고, 스크롤을 내려야 추가 정보가 로드되는 등 사용자의 개입(Interaction)이 강하게 요구되는 곳들이죠. 이런 난이도 높은 '동적 웹페이지'를 크롤링할 때 사용하는 가장 강력하고 대중적인 도구가 바로 Selenium(셀레니움)입니다.오늘은 Selenium을 이용해 오피넷(한국석유공사)의 전국 주유소 가격 데이터를 자동..
데이터수집처리 1탄 : https://pabeba.tistory.com/276데이터수집처리 2탄 : https://pabeba.tistory.com/277 오늘은 마지막으로 데이터를 적재해 보겠습니다.앞서 진행된 데이터 추출(Extract) 및 변환(Transform) 단계를 거쳐 생성된 최종 데이터를 영구적인 저장 매체(파일, 데이터베이스 등)에 보관하는 적재(Load) 단계에 대한 가이드입니다.파이썬의 데이터 분석 라이브러리인 pandas를 활용하면 리스트 형태의 데이터를 표(Table) 형태의 DataFrame으로 변환할 수 있으며, 내장 메서드를 통해 CSV 파일이나 RDBMS(관계형 데이터베이스)로 간편하게 적재할 수 있습니다. 1. 데이터프레임(DataFrame) 변환파이썬의 딕셔너리를 요소로..
저번 시간에 이어서 이제 위에 있는 메타 정보를 가져와보겠습니다. https://pabeba.tistory.com/276 1. 메타 정보 추출 목적개별 통화의 환율 데이터(매매기준율, 미화환산율 등)만으로는 해당 데이터의 기준 시점과 제공처를 정확히 식별할 수 없습니다. 데이터의 무결성과 시계열 분석을 보장하기 위해 기준 시간, 고시 은행, 고시 회차와 같은 메타 정보(Meta Data)를 별도로 추출하여 개별 데이터 셋에 병합해야 합니다.2. Part 1: 타겟 사이트 접속 (요청 및 응답)환율 상세 정보와 메타 정보가 존재하는 페이지가 다를 경우,메타 정보를 제공하는 별도의 URL에 HTTP GET 요청을 보내 HTML 응답을 획득해야 합니다.import urllib.request as reqfrom..
네이버 finance 환율 웹 화면에서 데이터를 가져오는 법을 알아보겠습니다.(네이버님들 혹시 트래픽이 너무 많이 잡혀 문제가 되면 글을 숨김처리하겠습니다. 근데 보러 오는 사람이 별로 없어서 그럴 일은 없을 것 같습니다.... ㅠ) 데이터 분석이나 자동화 프로젝트를 진행하다 보면, 필요한 데이터를 항상 깔끔한 형태의 Open API로 얻을 수 있는 것은 아닙니다. 때로는 우리가 직접 웹사이트에 접속해서 화면에 보이는 정보를 긁어와야(Scraping) 하는 경우가 발생하죠.오늘은 Open API가 제공되지 않는 환경에서 BeautifulSoup(BS4)를 활용하여 웹 데이터를 추출(Extract)하고 변환(Transform)하는 ETL 파이프라인 구축 방법을 알아보겠습니다. 1. 웹 스크래핑(Scrapi..
이번 시간에는 데이터 엔지니어로서 꼭 해야하는 데이터 수집, 처리, 적재ETL( Extract , Transform , Load )에 대하여 알아봅시다.데이터 추출을 위해 NAVER Devoloper 에서 api 를 빌려올 예정입니다.NAVER Devoloper API 사용법 1. NAVER Devoloper 입장https://developers.naver.com/main/ NAVER Developers네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음developers.naver.com 2. NAVER Devoloper 로그인 3. Applicatio..
이번 시간에는 파이썬 코드가 길어지고 복잡해질 때, 이를 효율적으로 관리하고 재사용하기 위해 필수적으로 알아야 하는'모듈(Module)'과 '패키지(Package)'에 대해 알아봅시다. 파이썬 프로그래밍을 시작하고 코드가 100줄, 1000줄 길어지다 보면 하나의 파일(*.py)에 모든 로직을 담는 것이 불가능해집니다.코드의 가독성이 떨어지고, 유지보수가 힘들어지며, 여러 명의 개발자가 함께 협업하기도 어렵기 때문입니다. 이러한 문제를 해결하기 위해 파이썬은 코드를 기능별로 쪼개어 관리할 수 있는 모듈(Module)과 패키지(Package)라는 훌륭한 시스템을 제공합니다.오늘은 이 두 가지의 개념과 활용법, 그리고 파이썬 스크립트에서 항상 보게 되는 __name__의 비밀까지 완벽하게 파헤쳐 보겠습니다...