묻고 답해요
144만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
url도 출력하려면 어떻게 해야 하나요
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager from bs4 import BeautifulSoup import requests import time import pyautogui import os import urllib.request import openpyxl # 검색어 입력하기 keyword = pyautogui.prompt("검색어를 입력하세요>>>") # 엑셀 생성 및 시트 추가 wb = openpyxl.Workbook() ws = wb.active ws.title = keyword # 시트의 타이틀을 검색어로 지정합니다. ws.append(['번호', '제목', '조회수', '날짜', 'url주소']) # 데이터 행 추가 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 불필요한 에러 메세지 없애기 chrome_options.add_experimental_option("excludeSwitches",["enable-logging"]) service = Service(executable_path=ChromeDriverManager().install()) url = f"https://www.youtube.com/results?search_query={keyword}" browser = webdriver.Chrome(service=service, options=chrome_options) browser.implicitly_wait(5) # 웹페이지가 로딩 될때까지 5초 기다림 browser.maximize_window() # 화면 최대화 browser.get(url) response = requests.get(url, headers={'User-agent':'Mozila/5.0'}) html = response.text soup = BeautifulSoup(html, 'html.parser') # 7번 스크롤하기 scroll_count = 7 i = 1 while True : # 맨 아래로 스크롤을 내린다. browser.find_element(By.CSS_SELECTOR,"body").send_keys(Keys.END) # 스크롤 사이에 페이지 로딩 시간 time.sleep(2) if i == scroll_count: break i += 1 # Selenium - Beautifulsoup 연동방법 html = browser.page_source soup = BeautifulSoup(html, 'html.parser') infos = soup.select('div.text-wrapper') for i, info in enumerate(infos,1) : # 원하는 정보를 가져오기 # 제목 title = info.select_one("a#video-title").text try: # 조회수 views = info.select_one("div#metadata-line>span:nth-child(3)").text # 날짜 data = info.select_one("div#metadata-line>span:nth-child(4)").text except: views = "조회수 0회" date = "실시간" try : # url주소 target = browser.find_element(By.CSS_SELECTOR,".yt-simple-endpoint.inline-block.style-scope.ytd-thumbnail") url_href = target.get_attribute['href'] except : url_href = "href없음" print(title, views, data, url_href) ws.append([i, title, views, data, url_href]) wb.save(f'07_유튜브_크롤링/{keyword}.xlsx')선생님 url 코드도 뽑아보고 싶어서 해봤는데 리스트 형태로 출력이 되어서 어떻게 하는지 궁금해서 여쭤봅니다 구글링 해 보았는데 제가 잘 못 찾아서 그런지 오류 나거나 리스트 형태로 밖에 출력이 안되네요[]
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁드립니다
alslvls1995@naver.com 입니다. 감사합니다
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
exe파일로 추출하려고 했는데 오류가 떠요
선생님 또 질문하러 왔습니다 ㅠㅠpyinstaller로 exe파일 추출하는걸 따라하고 있었는데요... openpycl이 import 되지 않았다고 떠서 import 문도 따로 넣었거든요.그랬더니 이제는 openpyxl.cell_writer 모듈이 없다고 뜨는데 여기부터는 어떻게 해결해야하는지 잘 모르겠네요.구글 검색했더니 해결방법이 되게 여러가지가 뜨던데그중에 저에게 맞는 해결법은 없었습니다..:(혹시 선생님께서도 이런 오류를 겪으신 적이 있을까요?
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
교재
이제 막 강의 들으려고 하는데 교재 같은 건 따로 구입 안해도 되나요 ?
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
docker, flower 질문
안녕하세요 강사님 강사님께서 설명해주신대로 해봤는데 아무리 해봐도 실행이 증상은 같아서 플라워만 제외하고 했을대는 잘 redis, celery는 잘올라가는데 flower를 넣으면 계속 문제가 생기더라구요 일단 깃허브에 올려서 코드한번만 봐주실수 있을까요?감사합니다https://github.com/nomzzang/new
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
RMSLE 관련 로그 함수관련 문의
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요? 제가 LOG 함수관련해서 조작법이 서툴러서요. RMSLE관련해서 공식을 찾아보니 아래오 같더라구요근데, 강의자료에 작성된 코딩을 보면 11sqrt(np.mean(np.power(np.log1p(y_test) - np.log1p(y_pred), 2))) 와 같습니다. 여기서 np. log1p(t_test) 이 코딩과 위에 공식이 같은건가요. +1이 여긴 반영되어 있는건지 모르겠습니다. 로그관련 설명을 좀 부탁드리겠습니다.
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
2강 정수론 14252
힌트가 없다는 가정한다면,for i in range(42, 2184): 구문에다가도if i == 2183: count += 2위의 조건문을 넣어줘야겠죠?
-
해결됨Google 공인! 텐서플로(TensorFlow) 개발자 자격증 취득
env_test 실행시 오류가 발생합니다
윈도우 배치 파일을 통한 가상환경설정에 실패해, 인터프리터 설정을 통한 패키지 설치로 조건에 맞는 가상환경을 설치했습니다. 파이썬 버전은 3.9.0 버전입니다.그 후 env_test 파일을 실행시켰는데import numpy as np import tensorflow as tf from tensorflow.keras.layers import Dense상기한 코드에서 세 번째 코드가 실행되지 않고ModuleNotFoundError: No module named 'tensorflow.keras'라는 오류가 발생합니다. import tensorflow as tf from tensorflow import keras from keras import layers또한 상기한 코드를 실행했을 경우에는ImportError: cannot import name 'keras' from 'tensorflow' (unknown location)라는 오류가 발생합니다.이 상황을 해결할 수 있는 방법을 알려주실 수 있으면 감사하겠습니다.
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
주소창에 sports가 들어가 있어도 읽어서 출력해요ㅠㅠ
import requests from bs4 import BeautifulSoup import time response = requests.get('https://search.naver.com/search.naver?ssc=tab.news.all&where=news&sm=tab_jum&query=%EC%86%90%ED%9D%A5%EB%AF%BC') html = response.text soup = BeautifulSoup(html, 'html.parser') articles = soup.select("div.info_group") # 뉴스 기사 div 10개 추출 for article in articles : links = article.select("a.info") # 리스트 if len(links) >= 2 : # 링크가 2개 이상이면 url = links[1].attrs['href'] # 두번째 링크의 href를 추출 # 다시 request 날려 준다 response = requests.get(url, headers={'User-agent':'Mozila/5.0'}) html = response.text soup = BeautifulSoup(html, 'html.parser') # 만약 연예 뉴스라면 if "entertain" in response.url : title = soup.select_one(".end_tit") content = soup.select_one("#articeBody") elif "sports" in response.url : title = soup.select_one("h4.title") content = soup.select_one("#newsEndContents") # 본문 내용안에 불필요한 div, p 삭제 divs = content.select('div') for div in divs : div.decompose() paragrahs = content.select('p') for p in paragrahs: p.decompose() else : title = soup.select_one(".media_end_head_headline") content = soup.select_one("#newsEndContents") print("==========링크==========\n", url) print("==========제목==========\n", title.text.strip()) print("==========본문==========\n", content.text.strip()) time.sleep(0.3)==========링크==========https://n.news.naver.com/mnews/article/005/0001678573?sid=102==========제목==========나이도 못 막았다… 8090 ‘은발의 손흥민’들Traceback (most recent call last):File "c:\Program Files\FirstPython\crawling\10.셀리니움_기본설정\Chapter04\04.스포츠뉴스크롤링하기.py", line 42, in <module>print("==========본문==========\n", content.text.strip())^^^^^^^^^^^^AttributeError: 'NoneType' object has no attribute 'text'하면 이렇게 에러가 나요 선생님 ㅠ.ㅠ 주소창을 보니깐 sports가 안 들어가 있는데 출력이 되어서 나옵니다. 혹시 넘어갈려면 어떻게 해야 하는지 여쭤봐도 되겠습니까?!
-
해결됨코딩테스트 [ ALL IN ONE ]
완전탐색 - 구현(순열) 질문
강사님, nums 1234로 만들수 있는 모든 순열을 반환하시오 문제에서 질문이 있습니다.curr = []라고 지정하지 않았는데 어디에서 갑자기 curr이 빈리스트로 자동적으로 생성된건가요?curr이랑 nums 개수 같으면 answer에 순열 추가되고 함수종료되는건 알겠는데 curr가 [1, 2, 3, 4]일때 재귀함수 종료되고 다음 curr.pop()로 넘어가서 [1, 2, 3]이 되는거까진 이해갔습니다. 넘어가는 순간 또 재귀함수가 종료되서 curr.pop()이 되서 [1, 2]가 되는건 알겠는데 갑자기 3, 4만 빠진 여기에서 멈추게 되는 것이 이해가 가지 않습니다. 여기에서 멈춰서 다시 4, 3으로 진행되는게 이해가 안가서요ㅠㅠ 1, 2도 전부 이전의 재귀함수가 종료된 것이니 pop이 되어야 되는거 아닌가요?ㅠㅠ for문 안의 재귀함수가 종료될시 어디로 돌아가는지가 약한거 같은데 이부분 공부하는 방법이 있으까요?
-
미해결[2024 개정판] 코딩 입문자를 위한 파이썬 완벽가이드
궁금한게 있습니다.
강의를 보는데 강의에서 계속 print를 쓸 때마다 한칸씩 아래로 내린 후 작성하던데 꼭 그래야 하는 이유가 있는 건가요? 아니면 그냥 써도 별 문제 없지만 깔끔하게 보이기 위해서 그렇게 작성하는 건가요?
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
HTML 변경으로 인한 CSS 선택자 및 줄바꿈 문의
import requests from bs4 import BeautifulSoup response = requests.get('https://search.naver.com/search.naver?ssc=tab.news.all&where=news&sm=tab_jum&query=%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90') html = response.text soup = BeautifulSoup(html, 'html.parser') news_infos = soup.select(' div.info_group') news_num = 1 for news_info in news_infos: news_link = news_info.select('a.info') if len(news_link) >= 2 : url = news_link[1].attrs['href'] news_info = requests.get(url) news = news_info.text news_information = BeautifulSoup(news, 'html.parser') news_text = news_information.select_one('article') print(str(news_num) , "입니다>>>>>>>>>>>>>>>>") print(news_text.text) news_num += 1CSS선택자를 article로 선택하고출력을 하였더니 결과값 사이 사이에 줄바꿈이 있네요없앨 수 있는 방법은 무엇일까요?
-
미해결블로그 자동화 프로그램 개발 강의 (파이썬 + 셀레니움)
이것도 로직이 바뀐 것 같아요.
안녕하세요.로직이 바뀐 것 같아서요.확인 부탁드립니다 ~그리고 최종 코드보면 새그룹을 만드는게 프로그램 시작되면로긴 후 바로 새그룹을 만들고 시작을 하더라고요.서이추를 하던중에 그룹인원이 꽉차면 만든다고강의에서 본 것 같거든요~로긴 후 바로 새그룹을 만들고 서이추가 시작되니까프로그램 시작할 때 마다 새그룹이 생겨서 빈 새그룹만 수십개가 되어버리고 있어요.
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
Reindexing only valid with uniquely valued Index objects 오류 질문입니다.
import timeimport pandas as pddef get_item_info(item_code): item_url = f'https://finance.naver.com/item/main.naver?code={item_code}' tables = pd.read_html(item_url, encoding='cp949') # if len(tables) == 13: # 코넥스를 거르기 위해 추가함 # continue item_info = [] # 빈 리스트 생성 finance_info = tables[3].iloc[:,[0,-2]] finance_info.columns = [0,1] # 합치기 전 칼럼명 일치시켜주기 item_info.append(finance_info) for t in tables: if t.shape[1] == 2: item_info.append(t) df_item = pd.concat(item_info) df_item = df_item.set_index(0).T time.sleep(0.2) # 과부하 막기 위한 지연 조회, 최소 0.1 이상. return df_itemimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plt # 한글폰트 위함import datetimeplt.style.use("seaborn-v0_8-talk")font_family = "Malgun Gothic"plt.rc("font", family = font_family)plt.rc("axes", unicode_minus=False)url = 'https://finance.naver.com/sise/sise_group_detail.naver?type=upjong&no=282'table = pd.read_html(url, encoding='cp949')raw = table[2]raw = raw.dropna(how='all').dropna(axis=1, how='all') #추가해서 칼럼도 모두 결측치시 삭제.today = datetime.datetime.today()today = today.strftime('%y%m%d')raw['종목명전처리'] = raw['종목명'].str.replace('*','', regex=True) # 문자치환raw['종목명전처리'] = raw['종목명전처리'].str.strip() # 앞뒤 공백 제거import FinanceDataReader as fdrdf_krx = fdr.StockListing('KRX')# print(df_krx[['Code','Name']])df_item_code_name = df_krx[['Code','Name']]# 위의 종목명_전처리 칼럼과 Name 칼럼을 연결지어서 코드 잡아준다.df_item_code_name.columns = ['종목코드', '종목명전처리']raw = raw.merge(df_item_code_name) # 강의에서 df에 해당함# progress_apply는 map의 사용방법을 되짚어보면서 봐라. 일괄적으로 함수 적용시 사용.# 진행사항을 보려면 progress_apply을 사용하면 된다.from tqdm.auto import tqdmtqdm.pandas()result = raw['종목코드'].progress_apply(get_item_info)# result로 받아서 데이터프레임 형식으로 concat 해줘야해서 tolist() 사용함df_item_info = pd.concat(result.tolist())# print(df_item_info['종목코드']) # 출력해보면 종목코드가 없다. 그래서 넣기# df_item_info['종목코드'] = raw['종목코드'] # 아래의 reset_index를 위해 비활성화함# print(df_item_info['종목코드'])# 위에서 index값이 1로 모두 같아 종목코드가 모두 동일 하므로 아래처럼 인덱스 다시 적용df_item_info = df_item_info.reset_index()df_item_info['종목코드'] = raw['종목코드']# print(df_item_info['종목코드'])# 위와 같이 작업 후 index라는 칼럼을 삭제해 준다.del df_item_info['index']# print(raw.shape)df_info = raw.merge(df_item_info) # 따로 지정 안해줘도 종목코드가 같기에 합쳐진다.# 파일명 만들기file_name_1 = url.split('=')[1].replace('&','_')file_name_2 = url.split('=')[2]file_name = f'{file_name_1}_{file_name_2}.csv'# 저장하기df_info.to_csv(file_name, index=False, encoding='cp949') 위와 같이 코드를 작성하고 실행 했는데요. 제목과 같은 오류가 발생 했습니다. 원인을 찾아 본 결과.코넥스 종목이 포함되어 있어서 칼럼명이 맞지 않아 발생하는 것으로 보입니다. 위의 이미지와 같이 코넥스 종목은 코스닥, 코스피 종목 처럼 table 개수 13개 보다 적게 나오므로 if문으로 table개수가 13개 이하이면 건너띄어 데이터를 받게 하면 오류가 발생하지 않을 것 같은데요. if 문을 함수 어느 위치에 넣으면 좋을지 모르겠어서 질문 드립니다. 어느 위치에 if문을 넣어서 해결하면 좋을까요?
-
미해결Airflow 마스터 클래스
sqlalchemy.create_engine으로 생성한 객체에 cursor가 없습니다.
전체 에러 로그:8fbc4f9f281a*** Found local files:*** * /opt/airflow/logs/dag_id=dags_python_with_custom_hook_bulk_load/run_id=manual__2024-03-06T03:55:34.102649+00:00/task_id=insrt_postgres/attempt=1.log[2024-03-06T03:55:35.452+0000] {taskinstance.py:1979} INFO - Dependencies all met for dep_context=non-requeueable deps ti=<TaskInstance: dags_python_with_custom_hook_bulk_load.insrt_postgres manual__2024-03-06T03:55:34.102649+00:00 [queued]>[2024-03-06T03:55:35.456+0000] {taskinstance.py:1979} INFO - Dependencies all met for dep_context=requeueable deps ti=<TaskInstance: dags_python_with_custom_hook_bulk_load.insrt_postgres manual__2024-03-06T03:55:34.102649+00:00 [queued]>[2024-03-06T03:55:35.456+0000] {taskinstance.py:2193} INFO - Starting attempt 1 of 1[2024-03-06T03:55:35.464+0000] {taskinstance.py:2214} INFO - Executing <Task(PythonOperator): insrt_postgres> on 2024-03-06 03:55:34.102649+00:00[2024-03-06T03:55:35.469+0000] {standard_task_runner.py:60} INFO - Started process 262 to run task[2024-03-06T03:55:35.471+0000] {standard_task_runner.py:87} INFO - Running: ['***', 'tasks', 'run', 'dags_python_with_custom_hook_bulk_load', 'insrt_postgres', 'manual__2024-03-06T03:55:34.102649+00:00', '--job-id', '620', '--raw', '--subdir', 'DAGS_FOLDER/dags_python_with custom_hook_bulk_load.py', '--cfg-path', '/tmp/tmp0zav_1t7'][2024-03-06T03:55:35.472+0000] {standard_task_runner.py:88} INFO - Job 620: Subtask insrt_postgres[2024-03-06T03:55:35.504+0000] {task_command.py:423} INFO - Running <TaskInstance: dags_python_with_custom_hook_bulk_load.insrt_postgres manual__2024-03-06T03:55:34.102649+00:00 [running]> on host 8fbc4f9f281a[2024-03-06T03:55:35.555+0000] {taskinstance.py:2510} INFO - Exporting env vars: AIRFLOW_CTX_DAG_OWNER='***' AIRFLOW_CTX_DAG_ID='dags_python_with_custom_hook_bulk_load' AIRFLOW_CTX_TASK_ID='insrt_postgres' AIRFLOW_CTX_EXECUTION_DATE='2024-03-06T03:55:34.102649+00:00' AIRFLOW_CTX_TRY_NUMBER='1' AIRFLOW_CTX_DAG_RUN_ID='manual__2024-03-06T03:55:34.102649+00:00'[2024-03-06T03:55:35.556+0000] {custom_postgres_hook.py:24} INFO - 적재 대상 파일: /opt/***/files/TbCorona19CountStatus/20240306/TbCorona19CountStatus.csv[2024-03-06T03:55:35.556+0000] {custom_postgres_hook.py:25} INFO - 테이블 :TbCorona19CountStatus_bulk2[2024-03-06T03:55:35.562+0000] {base.py:83} INFO - Using connection ID 'conn-db-postgres-custom' for task execution.[2024-03-06T03:55:35.582+0000] {custom_postgres_hook.py:34} INFO - TbCorona19CountStatus_bulk2.S_DT: 개행문자 제거[2024-03-06T03:55:35.583+0000] {custom_postgres_hook.py:34} INFO - TbCorona19CountStatus_bulk2.T_DT: 개행문자 제거[2024-03-06T03:55:35.583+0000] {custom_postgres_hook.py:38} INFO - 적재 건수:1212[2024-03-06T03:55:35.583+0000] {custom_postgres_hook.py:40} INFO - postgresql://***:***@172.28.0.3/***[2024-03-06T03:55:35.587+0000] {warnings.py:110} WARNING - /opt/***/plugins/hooks/custom_postgres_hook.py:43: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. file_df.to_sql(name = table_name,[2024-03-06T03:55:35.589+0000] {taskinstance.py:2728} ERROR - Task failed with exceptionTraceback (most recent call last): File "/home/airflow/.local/lib/python3.11/site-packages/airflow/models/taskinstance.py", line 444, in executetask result = executecallable(context=context, **execute_callable_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.11/site-packages/airflow/models/taskinstance.py", line 414, in executecallable return execute_callable(context=context, **execute_callable_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.11/site-packages/airflow/operators/python.py", line 200, in execute return_value = self.execute_callable() ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.11/site-packages/airflow/operators/python.py", line 217, in execute_callable return self.python_callable(*self.op_args, **self.op_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/airflow/dags/dags_python_with custom_hook_bulk_load.py", line 14, in insrt_postgres custom_postgres_hook.bulk_load(table_name=tbl_nm, file_name=file_nm, delimiter=',', File "/opt/airflow/plugins/hooks/custom_postgres_hook.py", line 43, in bulk_load file_df.to_sql(name = table_name, File "/home/airflow/.local/lib/python3.11/site-packages/pandas/util/_decorators.py", line 333, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.11/site-packages/pandas/core/generic.py", line 3084, in to_sql return sql.to_sql( ^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.11/site-packages/pandas/io/sql.py", line 842, in to_sql return pandas_sql.to_sql( ^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.11/site-packages/pandas/io/sql.py", line 2848, in to_sql table.create() File "/home/airflow/.local/lib/python3.11/site-packages/pandas/io/sql.py", line 984, in create if self.exists(): ^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.11/site-packages/pandas/io/sql.py", line 970, in exists return self.pd_sql.has_table(self.name, self.schema) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.11/site-packages/pandas/io/sql.py", line 2863, in has_table return len(self.execute(query, [name]).fetchall()) > 0 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.11/site-packages/pandas/io/sql.py", line 2670, in execute cur = self.con.cursor() ^^^^^^^^^^^^^^^AttributeError: 'Engine' object has no attribute 'cursor'[2024-03-06T03:55:35.597+0000] {taskinstance.py:1149} INFO - Marking task as FAILED. dag_id=dags_python_with_custom_hook_bulk_load, task_id=insrt_postgres, execution_date=20240306T035534, start_date=20240306T035535, end_date=20240306T035535[2024-03-06T03:55:35.605+0000] {standard_task_runner.py:107} ERROR - Failed to execute job 620 for task insrt_postgres ('Engine' object has no attribute 'cursor'; 262)[2024-03-06T03:55:35.643+0000] {local_task_job_runner.py:234} INFO - Task exited with return code 1[2024-03-06T03:55:35.655+0000] {taskinstance.py:3309} INFO - 0 downstream tasks scheduled from follow-on schedule check결과로 cursor가 attribute로 없다는 오류가 발생합니다. 기존에 있던 이후 글은 글자수 제한으로 삭제합니다.
-
해결됨웹 개발자라면 꼭 알아야 할 보안 기초
저작권 및 출처 관련 질문입니다.
안녕하세요. 지금 몇 개의 수업을 들으면서 정리를 하고 있습니다. 수업들으면서 정리한 걸 블로그에 작성해볼까 생각하는데, 출처 남기고 정리 노트같이 블로그에 올려도 될까요? 상업적인 용도는 아닙니다.
-
미해결PySide6 GUI & EXE 프로그램 개발 강의 (PyQt5)
윈도우창은 어떻게 바꾸나요.
강의를 덜본건가 윈도우창 디자인을 바꾸는 방법은 없네요
-
해결됨Airflow 마스터 클래스
외부 파이썬 함수 수행하기 - workspace folder 질문
알찬 강의 항상 감사드립니다.작업 위치1 (vsc상에서 작성하고 git push를 하는 위치) : [~/Desktop/airflow강의]작업 위치2 (WSL에서 git pull을 하는 위치) : [~/airflow]저는 위와 같은 경로상에서 수업 실습을 진행하고 있으며, '외부 파이썬 함수 수행하기' 강의에서 .env 파일을 다음과 같이 작성했습니다.WORKSPACE_FOLDER=/Users/hpsm5187/Desktop/airflow강의airflow가 인식하는 작업 폴더는 '작업 위치2'인 걸로 아는데, .env파일 내의 경로는 '작업 위치1'의 경로임에도 이상 없이 작동이 되는 부분이 의아합니다. .env파일을 git에서 인식하지 않도록 처리했는데 .env에서 정의해준 경로는 어떻게 반영이 되는건가요?
-
해결됨실전! FastAPI 입문
BackgroundTask 인자값 전달
안녕하세요 강사님 강의 재밌게 잘보고 있습니다BackGround task 강의에서 궁금한게 생겨서 질문 남깁니다. 아래는 verify_otp_handler 의 선언부인데def verify_otp_handler( request : VerifyOTPRequest, background_tasks : BackGroundTasks ... ) backgound_tasks 라는 객체는 DI로 받지도 않고 있는데 어떻게 함수 내부에서 사용될 수 있는지가 궁금합니다. request 라는 객체는 request 헤더부에서 넘어온 값이 프레임워크에 의해서 VerifyOTPRequest로 전처리되거라 어디서부터 왔는지 그 출처를 알겠지만, backgound_tasks는 DI도 되지 않았고 헤더부에서 넘어온 것도 아닌데 어떻게 생성된건지 궁금합니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
명령 프롬프트
메모장에 복사 했습니다