66,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
남박사님 함수가 호출이 안되네요.
나만의 단축키 smart 강좌를 보고 따라 쳐봤는데, 키 인식은 잘되나 function1,2,3 함수가 호출이 되지 않아요. 무엇이 틀렸을까요? from pynput.keyboard import Key, Listener, KeyCode import win32api # 단축키 저장 MY_HOT_KEYS =[ {"function1": {Key.ctrl_l, Key.alt_l, KeyCode(char="n")}}, {"function2": {Key.shift, Key.ctrl_l, KeyCode(char="b")}}, {"function3": {Key.shift, Key.ctrl_l, KeyCode(char="g")}}, ] # 키가 눌러져있는 키 상태를 기억하는 변수(집합) current_keys = set() def function1(): print("함수1 호출") win32api.WinExec("calc.exe") def function2(): print("함수2 호출") win32api.WinExec("notepad.exe") def function3(): print("함수3 호출") win32api.WinExec("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe") def key_pressed(key): print("Pressed {}".format(key)) for data in MY_HOT_KEYS: FUNCTION = list(data.keys())[0] KEYS = list(data.values())[0] if key in KEYS: current_keys.add(key) if all(k in current_keys for k in KEYS): #checker = True #for k in KEYS: #if k not in current_keys: #checker = False #break #if checker: function = eval(FUNCTION) function() def key_released(key): print("Released {}".format(key)) if key in current_keys: current_keys.remove(key) if key == Key.esc: return False # on_press, on_release는 인자값 with Listener(on_press=key_pressed, on_release=key_released) as Listener: Listener.join()
- 해결됨남박사의 파이썬 기초부터 실전 100% 활용
카카오개발자 센터가 바뀐거 같아요
카카오 개발자 센터가 바뀐거 같아요. 아무리 해봐도 예시는 안나오네요. 어떻게 하는지 알 수 있을까요?
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
직방 크롤링 질문입니다
안녕하세요 강의잘 듣고 있습니다 ^^' 최근 직방 사이트 변경되어서 교수님이 새로 올려주신 코딩으로 공부를 하려고 하는데요, 올려주신 코딩 자료에서, # 최초 검색어에 해당하는 검색어값의 자동완성 ajax 주소 입니다. # 예를 들어 사이트에서 대치동을 입력하면 대치동, 르엘대치(아파트), 대치동더블유타워(오피스텔)... 등의 # 검색 결과목록이 나오는데 이 값을 구해오는 주소 입니다. url = "https://apis.zigbang.com/search?q={}".format(keyword) 위에 https://apis.zigbang.com/search?q={}".format(keyword) -> 이 부분을 직방 사이트에서 받아올 수 없습니다.. 많이 바뀌었더라고요; 직방에서 페이지소스보기나 검사도구 기능ㅇ이 안되도록 기능이 바뀌어서.. ㅇㅣ런 경우는 API 주소를 어떻게 받아오면 될까요; 부탁드립니다;
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
선생님 질문이 있습니다.
안녕하세요 선생님 프로그래밍에 대해서 잘몰라서 많이이해가 안되는데 이전 강의계속 봐야할까요 아니면 넘어가면서 배워야할까요 ?
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
안녕하세요 . 파일배포하기 재 질문드립니다.
안녕하세요. 남박사님 우선 답변 감사드립니다. 다음이 아니라 처음 알려주신 답변대로 spec 파일에서 'pkg-resources.py2_warn' 을 치고 cmd 창에서 pyinstaller --onefile 파일명.spec를 다시 인스톨 하였는데도 아래와 같이 뜹니다.. 혹시 몰라 환경변수 path에 pkg-resources 해당 경로까지 추가 했는데도 이러한 에러가 뜹니다.. 구글링을 해도 따로 안나와서 이렇게 다시 남박사님께 질문드립니다. 감사합니다.
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
파일 배포하기 질문드립니다.
안녕하세요. 남박사님 파일 배포하기 관련해서 질문드립니다. cmd 에서 pyinstaller --oneifle 파일명.py 해서 exe 파일이 생성 되었습니다. 하지만 실행을 하면 ModuleNotFoundError: No module named 'pkg_resources.py2_warn' 이라는 에러가 발생하는데 구글링에서 찾아보니 파일명.spec 안에 있는hiddenimports 항목에 'pkg_resouces.py2_warn' 추가하고 저장후 다시 cmd 에서 pyinstaller --oneifle 파일명.py 하면 된다고 해보았는데 계속 ModuleNotFoundError: No module named 'pkg_resources.py2_warn' 에러가 발생합니다. 원인이 무엇인지 궁금합니다. * 참고로 알려주신 환경변수에 패치도 추가하였습니다.
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
강의자료는 제공되지 않나요?
강의자료나 강좌에 사용한 예제 파일은 별도로 제공 안 되나요? 제가 못 찾는 것인지, 원래 없는 것인지 궁금합니다~
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
박사님!
혹시 수강증은 발급가능한가요?
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
질문 드려요
안녕하세요. 강의 잘 듣고 있습니다. 파이썬에 대해 이것저것을 하다보니 뭔가가 꼬인 느낌입니다. 질문은 아나콘다를 설치후 beautifulsoup4을 설치를 했고 아니콘다에서는 잘 쓰고 있습니다. 그런데 비주얼스튜디어코드에서 다른 작업을 하던중 여기에서도 beautifulsoup4를 설치해야 해서 설치를 할려고 하면 계속 아나콘다 폴더에 설치가 되어 있다고 합니다. 이런 경우 아나콘다에서 작업을 하든 , 비주어스튜디어코드 작업을 하든 beautifulsoup4모듈을 불러오기 위해서는 어떻게 해야 하는지요?
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
맥OS pynput 사용 에러
일반 실행하면 입력을 주구장창 받으면서 터미널 제어가 안되서 터미널 강제 종료를 해야하고, sudo로 실행하면 아래와 같은 에러 메시지가 떠요. pynput 설치는 정상적으로 되었고, 구글링해보니까 '보안 및 개인 정보 보호'에서 Python, zsh에 컴퓨터 제어를 허용하라고 해서 했는데도 동작을 안해요. 맥OS 보안 문제인 것 같은데 다른 맥북 사용자분들 중에 해결하신 분 있으시면 알려주세요ㅠㅠ Traceback (most recent call last): File "11_shortcut.py", line 1, in <module> from pynput.keyboard import Key, Listener, KeyCode ImportError: No module named pynput.keyboard
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
갑자기 라이브러리 불러오는데 빨간색이 나오고 오류가 뜨네요
혹시 아나콘다를 설치하면 라이브러리를 다운 받을 때 오류가 생기나요? 그전까지 그런문제가 없었는데 아나콘다를 깔고 나서 실행하려고 하니 오류가 생깁니다. 그리고 네이버 크롤링 전단계까지는 실행이되었습니다. pylint 오류라고 해서 다시 깔고 그랬지만 여전히 오류가 있습니다.
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
남박사님 텔레그램 봇 질문입니다.!
봇을 만들려면 토큰을 발급받아 봇의 응답을 구현하는걸로 알고있습니다. 그러면 저와 봇 1:1 만 가능한데요 혹시 단체톡방에서 저의 봇을 사용하려면 어떻게 해야하나요? 좋은 강의 감사합니다.!
- 해결됨남박사의 파이썬 기초부터 실전 100% 활용
사용자 함수 강의 부분에서 질문있습니다!
def get_input_user(msg, casting): while True: try: value = casting(input(msg)) return value except: continue user = get_input_user("이름을 입력하세요", str) age = get_input_user("나이를 입력하세요", int) >> 이를 실행했을 때, 숫자를 입력하면 while 문이 돌고, 문자열을 입력해야만 다음으로 넘어가는 것 아닌가요? "이름을 입력하세요" 8 이라고 입력하면 원래는 "이름을 입력하세요" 가 다시 나와야 하는건데, "나이를 입력하세요" 로 넘어갑니다.... 혹시 제가 놓친 부분이 있을까요?
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
터미널에서 실행이 되지 않습니다,,,,
새로 파일을 불어와서 해 봐도 그냥 다음 칸으로 넘어가기만 하네요
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
텔레그램 봇 만들기 2차 강의 중
23번째 줄 r.text에서 invalid syntax라고 뜨며 오류가 나는데 이유를 모르겠습니다.
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
셀레니움 headless chrome으로 사이트 접속시 Access Denied 문제가 발생합니다.
기존의 셀레니움 방식의 크롤링이 아닌, 이미 제가 사용하고 있는 크롬창에서 셀레니움으로 크롤링을 하고 있습니다. 아래 코드를 추가하니 크롬창 재사용이 가능하더라구요. options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") headless chrome으로 웹사이트를 띄워놓고 원격으로 디버깅을 하는데, 이상하게 특정 사이트에 접속이 안되는 문제가 생깁니다. headless chrome 모드를 끄고 일반적인 셀레니움으로만 사용하면 해당 사이트에 접속이 가능한데, headless chrome을 적용하기만 하면 아래와 같은 메시지와 함께 접속제한이 생기네요. Access Denied You don't have permission to access "http://www.coupang.com/" on this server." Reference #18.57da2317.1583518355.74a9211 혹시 이런 경우가 한번 발생하면, 해당 사이트는 headless chrome으로 접속을 계속 못하게 되는건가요?? 구글링과 해외 개발자 커뮤니티 등 닥치는대로 해결방법을 찾고 적용해보는데 도통 해결이 되지않아 이렇게 질문 올립니다. 인터넷에 알아보니 user-agent를아래와 같이 변경하라고 해서 적용해봤지만 유독 쿠팡 사이트만 계속 Access Denied가 뜹니다. 아래는 사용중인 크롬창에서의 headless chrome 테스트용 코드입니다. from selenium.webdriver.chrome.options import Options from selenium import webdriver import time path = '/Users/yoons/Documents/chrome/chromedriver' options = Options() options = webdriver.ChromeOptions() options.add_argument('headless') options.add_argument('window-size=1920x1080') options.add_argument('lang=ko_KR') options.add_argument(f'user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36') options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") driver = webdriver.Chrome(path, options=options) TEST_URL = 'https://www.google.com/search?ei=ZspgXu77K8KnoATe3qCgCQ&q=basketball&oq=basket&gs_l=psy-ab.3.0.0l10.274346.277887..278777...2.3..0.337.1834.1j6j1j2......0....1..gws-wiz.....0..0i71j0i67j0i273.cDhByzynOnk' TEST_URL2 = 'https://www.coupang.com/' driver.get(TEST_URL) title_test = driver.find_elements_by_css_selector('#rso > div > div > div > div > div > div.r > a > h3')[0].text time.sleep(2) driver.switch_to.window(driver.window_handles[-1]) driver.get(TEST_URL2) print(title_test)
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
수정된 직방 프로그램에 대해 질문드립니다!
수정된 직방 크롤링 코드를 보며 실습중인데 질문드립니다. POST하여 PAYLOAD를 넘기고 item_ids를 가져오는 부분까지는 이해했으나 이렇게 나온 item_ids를 넘겨 나온 매물정보는 제가 직방 사이트를 통해서 보는 매물정보랑 너무 다릅니다. 왜 그런가 해서 보았더니 웹브라우저에서 표시되는 지도 크기에 따라 items들이 전부 바뀌는 것을 확인할 수 있었습니다. 심지어는 개발자 도구를 열때마다 지도가 줄어들어 데이터가 바뀌는 ...ㅜㅜ 이래서 참 제가 원하는 정보를 크롤링을 통해서 뽑아오기가 어렵더군요... 어떻게하면 특정한 창크기에서 나오는 정보를 그대로 크롤링 해올 수 있을까요? 혼자 고민해봤는데 안되어서 여쭙니다. 강의는 정말 잘듣고있습니다!!
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
- 콘솔 스마트 계산기 관련 질문 드립니다.
안녕하세요! 남박사님. 잘 알려주신 덕분에 원활히 해당 콘솔 스마트 계산기 강의를 넘어갔는데 복습하던중 한가지 궁금증이 있어 문의드립니다. 아래의 string_calculator 함수안에 user_input매개변수 용도는 이해가지만 """show_history=Fasle""" 의 용도가 이해가 가질않습니다. """show_history=Fasle""" 빼고 로직을 실행해도 어떠한 차이를 느끼지 못했는데 혹시 사용용도가 어떤것인지 알려주시면 감사하겠습니다. 하단에 전체적인 코드 작성표를 스크린샷 첨부하였습니다. 항상 감사드립니다! def string_calculator(user_input, show_history=False): # 콘솔 스마트 계산기 # enumerate는 문자열을 각각 인덱스 한다 ex: 안녕하세요 -> 안 녕 하 세 요 나눠준다. # user_input[-1] 안에 -1은 인덱싱 맨끝을의미 순서는 1,2,3,4 마지막부터는 역으로 -1,-2,-3 import os operator = ["+", "-", "*", "/", "="] def string_calculator(user_input, show_history=False): string_list = [] lop = 0 ## 입력된 계산식을 리스트화 시키는 로직 # 계산식 입력시 연산 앞까지만 데이터를 넣으니깐 임의로 연산자를 넣어서 데이터를 넣고 마지막에 연산자를 제거 if user_input[-1] not in operator: user_input += "=" # user_input = input("계산식을 입력하세요: ") 계산값 인덱싱 5 + 5 -> ["5","+","5"] for i, s in enumerate(user_input): # operator = ["+", "-", "*", "/", "="] 만날때 동작 if s in operator: if user_input[lop:i].strip() !="": string_list.append(user_input[lop:i]) string_list.append(s) lop = i + 1 string_list = string_list[:-1] # 아래는 계산하는 로직 # 10 + 20 + 30 + 30 입력할때 이 로직이 계산하는 방법 앞에 한덩어리 계산후 삭제 계산후 삭제 됨. # ['10 ', '+', ' 20 ', '+', ' 30 ', '+', ' 30'] 1번 # ['30', '+', ' 30 ', '+', ' 30'] 2번 # ['60', '+', ' 30'] 3번 # ['90'] 4번 최종계산 pos = 0 while True: if pos + 1 > len(string_list): break if len(string_list) > pos + 1 and string_list[pos] in operator: temp = string_list[pos-1] + string_list[pos] + string_list[pos + 1] del string_list[0:3] # insert는 리스트 내용을 앞에다가 추가 append는 리스트 내용을 뒤에서부터 추가 string_list.insert(0, str(eval(temp))) pos = 0 #리스트 계산 어떻게 되나 확인 # show_histrory True면 실행 맨 밑에 입력 함수 값 인풋에서 result = string_calculator(user_input, show_history=True) True를 넣어줌 if show_history: print(string_list) pos += 1 if len(string_list) > 0 : result = float(string_list[0]) return round(result, 4) while True: os.system("cls") user_input = input("계산식을 입력하세요: ") # 계산기 반복하다가 나갈려고 할때 /exit 치면 됨. if user_input == "/exit": break result = string_calculator(user_input, show_history=True) ## 함수 안에 있는건 지역 변수 함수 밖에 있는건 전역 같은 변수라도 함수 안에 있는지 밖에있는지 차이가 있어서 중복되도 별개로 봄. print("결과 : {}".format(result)) os.system("pause") # 계속하려면 아무 키나 누르십시오 ... 나오게 하는것
- 해결됨남박사의 파이썬 기초부터 실전 100% 활용
ModuleNotFoundError: No module named 'detect'
from chardet import detect ModuleNotFoundError: No module named 'detect' 저 구간에서 오류가 발생하는데 어떻게 해결해야 하나요??
- 미해결남박사의 파이썬 기초부터 실전 100% 활용
텔레그램 봇 강의 중 질문입니다.
안녕하세요~ 강의 잘 듣고 있습니다~ 텔레그램 봇 만들기 2번째 심화 강의 중 (강의 시작 9분 정도), 텔레그램에 '/dir' 을 입력하면 터미널 창에 module 'ntpath' has no attribute 'exist' 라는 메시지가 출력됩니다. 스택오버플로우로 검색해 봐도 어떤 문제인지 찾지를 못했어요;; 파이썬은 3버전 이상입니다. 어떤 문제일까요;;; import os import telepot import logging logging.basicConfig(level=logging.DEBUG) logger = logging.getLogger(__name__) TELEGRAM_TOKEN = "1112174312:AAEyoQlv66VJuO2NyqLWHvjg7tAE4JMdavQ" def get_dir_list(dir): str_list = "" if os.path.exists(dir): file_list = os.listdir(dir) file_list.sort() for f in file_list: full_path = os.path.join(dir, f) if os.path.isdir(full_path): f = "[" + f + "]" str_list += f str_list += "\n" str_list.strip() return str_list def handler(msg): content_type, chat_type, chat_id, msg_date, msg_id = telepot.glance( msg, long=True) print(msg) # /dir c:\\test if content_type == "text": # bot.sendMessage(chat_id, "[반사] {}".format(msg["text"])) str_message = msg["text"] if str_message[0:1] == "/": args = str_message.split(" ") command = args[0] del args[0] if command == "/dir": filepath = " ".join(args) if filepath.strip() == "": bot.sendMessage(chat_id, "/dir [대상폴더]로 입력해 주세요.") else: filelist = get_dir_list(filepath) bot.sendMessage(chat_id, filelist) bot = telepot.Bot(TELEGRAM_TOKEN) bot.message_loop(handler, run_forever=True)