내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)
5.4 영상보면 전일비는 숫자로만되어있네요 영상보면 전일비는 숫자로만되어있네요 제 코드는 아래와 같고 어떻게 상승,하락을 없애는지 모르겠습니다. import requests import bs4 import re import time total_data_list = [] # 추출하고자 하는 데이터 리스트를 모아놓을 곳 page_number = 1 pre_data_time_set = set() # 이전 페이지에서 추출한 데이터를 모아놓는 곳 cuz 중복되면 그만두게 하기 위해 while True: # 특정 조건이 만족하면 break로 루프 끝냄 # 페이지 번호를 포함한 url 생성 - {}.format을 사용해서 동적으로 사용 url2 = "https://finance.naver.com/item/sise_day.naver?code=453450&page={}".format(page_number) # 해당 url로 요청 res2 = requests.get(url=url2, headers=headers2) # 요청한 정보를 .text로 만든 뒤 파싱 soup3 = bs4.BeautifulSoup(res2.text, "lxml") tr_eli = soup3.select("table.type2 > tr[onmouseover='mouseOver(this)']") current_time_set = set() # 현재 페이지의 날짜 데이터를 저장할 set for a in tr_eli: # tr_eli라는 ResultSet에서 하나씩 추출 td_eli = a.select("td") # a.select("td") = 위에서 추출한 것에서 'td' 태그를 포함한 것을 추츨하고 ResultSet으로 반환 # a는 태그지만 td_eli는 ResultSet이다 : data_list = [] # 추출한 데이터를 담을 리스트 for i, td_real2 in enumerate(td_eli): # 추출한 ResultSet(열)들과 인덱스를 같이 순회 clean_data = re.sub(r'\s+', " ", td_real2.text.replace(",","")) # 숫자가 아닌 모든 문자를 제거 if clean_data == " ": break if i == 0: # 첫 번째 인덱스는 무조건 날짜임 current_time_set.add(clean_data) data_list.append(clean_data) if len(data_list) > 0: # data_list가 빈칸이 아닐경우에 total에다가 추가 total_data_list.append(data_list) else: # eliment를 가져오는거 자체를 그만두게 하는 것 break # 이전에 수집한 날짜와 현재 페이지의 날짜가 동일하면 루프 중단 if pre_data_time_set == current_time_set: print("끝났다", page_number) break else: pre_data_time_set = current_time_set # 현재 페이지의 날짜로 업데이트 time.sleep(3) # or random.random() * 2 page_number += 1 # 페이지 번호를 1씩 증가 # 결과 출력 for data in total_data_list: # total_data_list는 리스트 형식이라 리스트안에 리스트를 빼내는 작업하는 것 print(data) # 중복되는 내용 없애는거는 나중에 DataFrame 사용하면 편한데 로직내에서도 가능하긴 하다.
반복문강의 20:40초 for 과 while 반복문 풀이를 할때 for문은 i=5까지 반복한다하셨는데요. 어떻게 출력값이 짝수기준으로 while 출력물이 나오는지 이해가 안갑니다. i=1일때 for문으로 현재숫자:1 출력은 이해가 가구요. 그다음 while로 넘어갔는데 조건식이 false여서 다시 for문으로 돌아오는 것인가요? 왜 돌아가는지 이해가 안가서요. 그다음 2일땐 while 조건식이 True 여서 출력되고break로 빠져나오고 다시 for문으로 돌아가는건가요.
안녕하세요? 어제까지 작동하던 코드가 오늘 위 에러 메시지가 나면서 작동이 되지 않네요. 예외가 발생했습니다. AttributeError module 'win32com.gen_py.7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0' has no attribute 'CLSIDToClassMap' File " E:\Naver MYBOX\빠른동기화폴더\999_업무용주요매크로\999_한글매크로\01_일상의코딩\002_import win32com.py ", line 3, in <module> hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") # 한글 실행 AttributeError: module 'win32com.gen_py.7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0' has no attribute 'CLSIDToClassMap' GPT에게 물어 보니 com 이 손상되었다고 하면서 com 캐시 재생성 하거나 캐시를 재설정 및 재실행을 하라고 하는데, 정말 그런건가요? 위 두 코드를 넣어 보았는데, 계속해서 에러메시지가 나네요 TT
void print_binary(unsigned long n); void print_binary_loop(unsigned long n); int main() { unsigned long num = 10; print_binary_loop(num); print_binary(num); printf("\n"); return 0; } void print_binary_loop(unsigned long num) { while (1) { int q = num / 2; int r = num % 2; printf("%d", r); num = q; if (num == 0) break; } printf("\n"); } void print_binary(unsigned long num) { int r = num % 2; if (num >= 2) print_binary_loop(num / 2); printf("%d", r); return; } 재귀함수를 출력할때 loop쪽 함수 마지막에 pritnf("\n",r);때문에 101\n0으로 계속 출력되는데 강의 영상을 보아도 다른 부분이 없어서 어디가 잘못됐는지 모르겠습니다.
안녕하세요 선생님 구글에 graphviz 다운로드 후 pip install을 해야하나 모르고 pip install 먼저하고 구글 다운로드 후 다시 pip install 하니 중복되서 프롬프트에서 graphviz가 중복됬다고 실행이 안됩니다 ㅠㅠ 혹시 해결방법이 있을까요 ?
선생님 안녕하세요. 강의 잘 듣고 있습니다. 다름 아니라 미니콘다 프롬프트를 통해 가상환경설정 시 기존 yaml 파일을 통해 환경설정을 덮어쓰기 하는 경우 에러가 발생합니다. (myenv-finance-analysis) C:\Users\baesilisk\env_yaml>conda env create --force -f myenv-finance-analysis.yaml usage: conda-script.py [-h] [-v] [--no-plugins] [-V] COMMAND ... conda-script.py : error: unrecognized arguments: --force 해결방법을 알려주시면 감사하겠습니다!
안녕하세요 선생님! 강의 잘 듣고 있습니다. [실전 문제풀이1 : BOJ 3085 사탕 게임] 문제에서 선생님이 제공해주신 "풀이1-O(N^4)" 으로 python3 답을 제출했는데 시간 초과가 되는 걸로 나옵니다. 시간 복잡도가 O(N^4)인데 왜 시간 초과가 나는 것인지 궁금해서 문의드립니다!
답보다 구한 개수가 더 클 때와 같을 때를 구분해서 코드를 작성하면 정답이 아닌 것도 있는데 왜일까요?! 결국 개수가 같은 것을 찾는 것이니까 맞지 않나요...??? import sys #sys.stdin = open("00.txt", "r") k, n = map(int, input().split()) lens = list(int(input()) for _ in range(k)) rt = max(lens) lt = 0 while rt >= lt: temp = (rt+lt)//2 s = 0 for i in range(k): s += lens[i] // temp if s > n: lt = temp + 1 elif s < n: rt = temp - 1 else: re = temp lt = temp + 1 print(re)
초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
bard api 관련 질문입니다. 1.bard 에서 gemini 로 서비스가 변경이 되었습니다. 변경된 교육이나 자료가 있을까요? 강의 내용 대로 했는 오류가 나오네요 (쿠키 삭제하고 해도) ch06>python 01_bard _exp.p y {'content': 'Response Error: b\')]}\\\'\\n\\n38\\n[[ "wrb.f r",null,null,null,null,[7]]]\\n56\\n[["di",29],["af.httprm",29,"-4302197897822373408",28]]\\n25\\n[["e",4,null,null,131]]\\n\'. \nUnable to get response.\nPlease double-check the cookie values and verify your network environment or google account.'} 알려주세요~~