[Airflow] 전역변수 Variable 이용하기
·
Minding's Programming/Airflow
전역 변수 Variable? Xcom은 특정 DAG 또는 특정 Schedule에 수행되는 task 간에만 공유되는 데이터라면, Variable은 모든 DAG에 공유되는 데이터라고 할 수 있다. Variable은 Airflow Webserver(http://localhost:8080/)에서 등록할 수 있다. Admin 메뉴 하단 'Variables'라는 메뉴에서 등록가능하다. (실제 Variable의 Key, Value 값은 메타 DB의 Variable 테이블에 저장된다.)  전역 변수 사용하기 전역 변수를 사용하는 방법에는 크게 두 가지가 있다. 1) Variable 라이브러리를 이용해 가져오기from airflow.models import Variablevar_value = Variable.get("s..
[Airflow] Python Operator의 op_args, op_kwargs
·
Minding's Programming/Airflow
*args와 **kwargs의 개념 정리: [Python] 파이썬 함수 파라미터 *args와 **kwargs op_args 파이썬 오퍼레이터를 사용해 파이썬 함수를 실행시킬 경우 해당 함수의 파라미터는 op_args를 통해 전달한다.as dag: def regist(name, sex): print(f'이름은 {name}이고 성별은 {sex}입니다.') py_task_1 = PythonOperator( task_id = 'py_task_1', python_callable=regist, op_args = ['minding', 'man'] # 리스트 형태로 작성 py_task_1 = PythonOperator( # *args가 있을 경우 task_id = 'py_task_1',..
[Python] 파이썬 함수 파라미터 *args와 **kwargs
·
Minding's Programming/Airflow
파이썬의 일반적인 함수 인자 보통의 파이썬 함수는 인자(파라미터)를 필요로 하고, 아래와 같이 쓰인다.def regist(name, sex): print(name) print(sex) 위 함수를 기준으로 봤을 때, 이름과 성별 말고도 추가적인 정보(이메일, 전화번호 등)를 받을 수도 있을 때에는 어떻게 해야할까? 저 함수를 그대로 놓고 추가적인 정보를 제공한다면 에러가 나기 때문에, 수정이 필요하다. *args 첫 번째 방법으로는 *args를 사용할 수 있다.def regist(name, sex, *args): print(type(args)) # args는 tuple 형태로 저장됨 email = args[0] if len(args) >= 1 else None # 부가정보 없는 경우 대비해..
[Airflow] Python Operator 사용과 Python Decorator
·
Minding's Programming/Airflow
Python Operator 파이썬 오퍼레이터: Airflow에서 Python 함수를 실행시키는 오퍼레이터로, 해당 클래스를 이용해 DAG을 만들면 파이썬 함수를 실행시키는 워크플로우를 생성할 수 있다. 1. 내부 함수 실행# 내부에 직접 함수를 만드는 경우from airflow import DAGimport pendulumimport datetimefrom airflow.operators.python import PythonOperatorimport randomwith DAG( dag_id="dags_python_operator", schedule="30 6 * * *", # 매일 6시 30분 마다 start_date=pendulum.datetime(2023, 3, 1, tz="Asia..
[FastAPI] HTTP 메소드 요청을 처리하는 데코레이터 정리
·
Minding's Programming/FastAPI
야구장 소개 홈페이지를 직접 만들면서 게시판 기능을 구현하려고 하니, 기존에 사용했었던 @router.get 데코레이터가 아닌 .post, .put, .delete와 같은 다양한 데코레이터를 사용하게 됐다. 각 데코레이터 별 개념을 간단히 정리해보고자 한다. 각 데코레이터는 FastAPI의 HTTP 메소드에 따른 요청을 처리하는데 사용되는 데코레이터이며, 특정 URL 경로와 HTTP 메소드에 매핑하여 해당 요청이 들어올 때 지정된 함수를 실행한다. 1. @router.get HTTP GET 메소드와 관련된 요청을 처리주로 서버에서 데이터를 가져오는 데 사용ex) 데이터 조회, 특정 리소스를 가져오는 요청 2. @router.postHTTP POST 메소드와 관련된 요청을 처리주로 서버에 새로운 데이터를 ..
[Python/Selenium] (업데이트)Selenium으로 KBO 경기 일정 크롤링하기
·
Minding's Programming/Crawling
2024.07.01 - [Minding's Programming/Knowledge] - [Python/Selenium] Selenium으로 KBO 경기 일정 크롤링하기 [Python/Selenium] Selenium으로 KBO 경기 일정 크롤링하기야구장 소개 홈페이지를 만드는 데 경기 일정도 한 페이지에 보여주는 곳이 있으면 좋겠다고 생각이 들었다. KBO 홈페이지에 있는 경기 일정을 주기적으로 크롤링해 이 홈페이지에 노출시키고자minding-deep-learning.tistory.com 이 글은 위 링크의 크롤링 코드를 보완한 코드와 함께 어떻게 보완했는지에 대한 설명을 위한 글이다. 전체 코드 from selenium import webdriverfrom selenium.webdriver.chrome..
[Python/Selenium] Selenium으로 KBO 경기 일정 크롤링하기
·
Minding's Programming/Crawling
https://minding-deep-learning.tistory.com/180 [Python/Selenium] (업데이트)Selenium으로 KBO 경기 일정 크롤링하기2024.07.01 - [Minding's Programming/Knowledge] - [Python/Selenium] Selenium으로 KBO 경기 일정 크롤링하기 [Python/Selenium] Selenium으로 KBO 경기 일정 크롤링하기야구장 소개 홈페이지를 만드는 데 경기 일정도 한 페minding-deep-learning.tistory.com위 글은 본문의 코드를 보완한 코드이다. 야구장 소개 홈페이지를 만드는 데 경기 일정도 한 페이지에 보여주는 곳이 있으면 좋겠다고 생각이 들었다. KBO 홈페이지에 있는 경기 일정을 ..
[Python/Bleach] Bleach 라이브러리 이용해 HTML 태그 삭제하기
·
Minding's Programming/Crawling
네이버 뉴스 API를 통해 뉴스 데이터를 수집하다보니, 뉴스 제목에 해당하는 title에 HTML 태그가 그대로 들어와 문자열에 포함되는 경우가 있었다. 이 문자열 그대로 홈페이지에 노출할 예정이었다 보니, 해당 문자열을 필터를 통해 HTML 태그를 지울 필요가 있었다. 그럴때는 Bleach의 clean메서드를 이용하면 해결할 수 있다. from bleach import cleanarticle = '가나다라'print(clean(article, tags=[], strip=True))>>>'가나다라'