묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 기본편
셀레니움 설정 강의에서 에러가 납니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.from selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.chrome.options import Options# 크롬 드라이버 자동 업데이트from webdriver_manager.chrome import ChromeDriverManager# 브라우저 꺼짐 방지chrome_options = Options()chrome_options.add_experimental_option("detach", True)# 불필요한 에러 메시지 없애기chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])service = Service(executable_path=ChromeDriverManager().install())driver = webdriver.Chrome(service=service, options=chrome_options)# 웹페이지 해당 주소 이동driver.get("https://www.naver.com")\\여기까지 코드입니다. (그대로 따라썼는데 안되어서 강사님 다른 답변에서 직접 올려주신 코드 복사 붙여넣기 했습니다..!)selenium과 webdriver 모두 pip install 이용해서 설치했구요, selenium은 4.16.0, webdriver-manager는 4.0.1입니다. 에러 메시지는 아래와 같습니다.보기 힘드실까 하여 아래에 AttributeError부분을 써놓겠습니다. determined_browser_version = ".".join(determined_browser_version.split(".")[:3])AttributeError: 'NoneType' object has no attribute 'split'
-
미해결이것이 진짜 크롤링이다 - 실전편
requests 라이브러리를 활용한 쿠팡 로그인 가능 여부
안녕하세요.쿠팡에서 제가 주문한 주문내역을 크롤링하고 싶은데, 우선 로그인이 필요하겠더라구요.로그인 화면 URL은 https://login.coupang.com/login/login.pang 이고,주문 내역 URL은 https://mc.coupang.com/ssr/desktop/order/list 인데,제가 아는 모든 방법을 동원해도 session.post 요청을 날리면 무한로딩에 빠져버리네요..강사님께서는 requests 라이브러리를 이용한 쿠팡 로그인이 가능한 지 여쭤봅니다.제가 작성한 코드를 아래 남깁니다.import requests login_url = "https://login.coupang.com/login/login.pang" user = 'EMAIL' password = 'PASSWORD' login_data = dict() login_data['email'] = user login_data['password'] = password header = { 'Host': 'www.coupang.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Language': 'ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3', } with requests.Session() as session: res = session.post(login_url, data = login_data, headers=header) url_order = 'https://mc.coupang.com/ssr/desktop/order/list' res = session.get(url_order) print(res.content)
-
해결됨파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
문제 파일을 열려로 하는데 다음과 같은 에러 메시지가 뜹니다.
연습문제를 푸려고 하는데 다음과 같이 뜨면서 되지 않습니다.이유가 뭘까요?
-
미해결디스이즈 디스커버 디스코드 파이썬봇
다른 강의들은 전부 다 무제한이던데 이 강의도 기간 무제한이었으면 좋겠습니다.
6개월 지나고 이전에 배운 거 혹시나 기억 안 나면 강의 다시 볼 수도 있는데 이 점을 생각하면 기간 제한이 없는 편이 좋을 것 같습니다.
-
미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
[셀레니움 사용해보기]웹 드라이버 경로관련
크롬드라이버 버전(120.0.6099.130(공식 빌드) (64비트)에 맞게 웹드라이버를 다운로드(https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/120.0.6099.109/win64/chromedriver-win64.zip) 해서, app.py 경로에 가져왔고요. 강의 내용과 동일하게 코드를 입력했으나 경로를 찾지 못하는 듯 합니다. 셀레니움이 20년에 비해 많이 지나서 최신 버전이라 강의내용대로 하면 구현이 안되는 걸까요?
-
미해결이것이 진짜 크롤링이다 - 실전편
쿠팡 브랜드 CSS 선택자
강의에서는 class name이 a.prod-brand-name로 잘 나오는데,제가 사이트에서 확인할 때는 .prod-brand-name brandshop-link 으로 보입니다.실행시켜보면a.prod-brand-name 이 맞고.prod-brand-name brandshop-link 는 아닙니다.직접 찾아볼 때는 .prod-brand-name이 안보이는데 어떻게 찾을 수 있을까요?CSS 선택자를 잘 못 정하겠습니다.ㅠㅠ
-
해결됨실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
[page숫자설정]int(page) 관련문의드립니다.
page=request.form['input2'] 가 text 형이어서 for 문에서 사용할 때에 int(page)로 해주어야 오류가 없는데요.index.html 에서 <input type='number'... > 로 number로 지정을 해주는 데 이 때부터 text 가 되는 건지, 아니면 request.form 을 하면서 text로 바뀌는 건지요?
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
파일에 답이 작성되어 있어요
문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본: 문자열,리스트,조건문 활용1강의자료에서 python-question2-web파일에 답이 다 작성되어있는데, 답 작성이 되지 않은 파일은 없나요?- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 기본편
팝업이 안뜹니다. AssertionError: Tkinter is required for pymsgbox
AssertionError: Tkinter is required for pymsgboxpip install tk 도 해봤지만 자꾸 에러메시지가 뜹니다. 구글링 해봐도 답이 안나와서 질문드립니다.
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
pylint
visual studio에서 pylint 저장까지 다 했는데 view에서 command palette에 들어가서 python: select linter가 안떠요.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
업데이트 된 API 를 기존 강의 내용에 맞게 따라하던 중 문제가 발생하였습니다.
from openai import OpenAI client = OpenAI( api_key = "----" ) message = [] while True : user_cotent = input("user : ") message.append({"role": "system", "content": f"{user_cotent}"}) completion = client.chat.completions.create(model="gtp=3.5-turbo", messages=message) assisant_content = completion.choices[0].message["content"] message.append({"role": "assiant", "content": f"{assisant_content}"}) print(f"GPT : {assisant_content}") 업데이트 된 API로 인하여 강의에서 막혔던 부분을 유튜브를 통해 해결하고 API Key에서 막혔던 부분은 결제를 통하여 해결하였습니다. 그리고 유튜브에서 업데이트 된 Assistant 내용이 있어 그 부분까지는 따라했습니다.그런데 58강(openai API 사용법(ChatGPT gpt-3.5-turbo 모델) 강의 내용을 제 나름대로 업데이트된 API 코딩에 맞게 수정하여 실행해 봤는데 에러가 발생하네요기존 강의와 업데이트 된 API 는 접목이 되지 않는건가요? 그렇다면 API와 대화하듯이 질문을 주고 받는 것은 업데이트 된 Assisant 코딩에서 수정을 하여 만들어야 하는건가요? 이 뒷 강의들을 내용을 아직 보지는 않았으나 만일 현재 업데이트된 API와 맞지 않다면 어떻게 공부하는게 맞을까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
텔레그램 API 질문드립니다
좋은 강의 감사합니다. 궁금한게 있어 질문 남겨드립니다!강의 예시와 같이 message 값을 직접 입력하지 않고, 텔레그램 채팅창에 입력한 값으로 바로 활용하고자 할 경우 어떻게 응용 가능할지도 궁금합니다~
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
add 함수 문의 ㅠㅠ
c = 10 def add(a,b): global c c = a+b return c b = add(1,10) print(b,c)여기서 왜 11 11이 나오는지 모르겠어요b는 add(1,10) 이니까 11이 맞는거 같은데c= global 이라 밖에 10을 쓴다고 했는데요c는 10 이 맞지 않나요?
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
형식 문의드립니다.
2분51초에 print("소님이 {} 명 입니다.".format(guest))이렇게 쓰셨는데.format, .get 이런 함수들을 쓰시던데 .xx가 어떤 기준으로 쓰는지 어떨 때 get or format 등등 쓰는지 궁금합니다.
-
해결됨이것이 진짜 크롤링이다 - 실전편
키워드입력시 오류
안녕하세요 선생님 2가지의 질문이 있습니다.아래와 같이 코드를 구성했습니다.1. 키워드로 강남역 맛집 / 이태원 술집으로는 엑셀파일로 저장이 잘 되는데 "행궁동 맛집"이라고 치면 아래와 같은 오류가 출력됩니다. 왜이러는 걸까요?제 생각엔 "이태원 술집" , "강남역 맛집"에서는 iframe 안쪽을 한번 클릭 하는 것이 실행이 되는 것 같은데 "행궁동 맛집", "용산역 맛집"에서는 검색어 입력 후 iframe 클릭 하지 않고 바로 스크롤이 되는 것 같습니다. C:\CRAWLLING>C:/Users/libra_erv8ij1/AppData/Local/Programs/Python/Python312/python.exe c:/CRAWLLING/CRAWLING심화/ch7.네이버지도크롤링/06.데이터저장.pyc:\CRAWLLING\CRAWLING심화\ch7.네이버지도크롤링\06.데이터저장.py:85: SyntaxWarning: invalid escape sequence '\c'wb.save(f"CRAWLING심화\ch7.네이버지도크롤링\\{keyword}.xlsx")Traceback (most recent call last):File "c:\CRAWLLING\CRAWLING심화\ch7.네이버지도크롤링\06.데이터저장.py", line 81, in <module>print(rank, name, star)^^^^NameError: name 'name' is not definedfrom selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time from webdriver_manager.chrome import ChromeDriverManager import pyautogui import openpyxl keyword = pyautogui.prompt("검색어를 입력하세요") wb = openpyxl.Workbook() ws = wb.create_sheet(keyword) ws.append(["순위", "이름", "별점"]) chrome_options = Options() chrome_options.add_experimental_option("detach", True) chrome_options.add_experimental_option('excludeSwitches', ["enable-logging"]) service = Service(executable_path=ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=chrome_options) driver.implicitly_wait(10) driver.maximize_window() driver.get("https://map.naver.com/v5/") search = driver.find_element(By.CSS_SELECTOR, "input.input_search") search.click() time.sleep(1) search.send_keys(keyword) time.sleep(1) search.send_keys(Keys.ENTER) time.sleep(2) # iframe 안으로 들어가기 driver.switch_to.frame("searchIframe") # driver.switch_to_default_content() iframe 밖으로 나오기 # iframe 안쪽을 한번 클릭 driver.find_element(By.CSS_SELECTOR, "#_pcmap_list_scroll_container").click() # 로딩된 데이터 개수 확인 lis = driver.find_elements(By.CSS_SELECTOR, "li.UEzoS") before_len = len(lis) while True: # 맨 아래로 스크롤 내린다 driver.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END) # 아무 태그나 선택하기 위해 body를 선택하는 것 # 스크롤 사이 페이지 로딩 시간 time.sleep(1.5) # 스크롤 후 로딩된 데이터 개수 확인 lis = driver.find_elements(By.CSS_SELECTOR, "li.UEzoS") after_len = len(lis) # 로딩된 데이터 개수가 같다면 반복 멈춤 if before_len == after_len: break before_len = after_len # 데이터 기다리는 시간을 0으로 만들어줌 (데이터가 없어도 빠르게 넘어감) driver.implicitly_wait(0) rank = 1 for li in lis: # 광고상품 아닌것만 if len(li.find_elements(By.CSS_SELECTOR, "svg.dPXjn")) == 0: # 별점이 있는 것만 크롤링 if len(li.find_elements(By.CSS_SELECTOR, "span.h69bs.orXYY")) > 0: # 가게명 name = li.find_element( By.CSS_SELECTOR, "span.TYaxT").text # 별점 star = li.find_element(By.CSS_SELECTOR, ".h69bs.orXYY").text.split('\n')[1] print(rank, name, star) ws.append([rank, name, float(star)]) rank = rank + 1 wb.save(f"CRAWLING심화\ch7.네이버지도크롤링\\{keyword}.xlsx") # 새롭게 오픈한 가게이면 if len(li.find_elements(By.CSS_SELECTOR, "span.h69bs.DjPAB")) > 0: try: # 방문자 리뷰수 visit_review = li.find_element(By.CSS_SELECTOR,"span.h69bs:nth-child(3)").text except: visit_review = "0" # 새로 오픈한 가게가 아니면 else: try: visit_review = li.find_element(By.CSS_SELECTOR,"span.h69bs:nth-child(2)").text except: visit_review = "0"네이버 지도가 바뀌어서 리뷰가 바뀌었습니다.위와 같이 새로 오픈한 가게로 해서 코드를 작성했는데 작동하지 않습니다. 어떻게 코드를 구성하면 좋을까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
open api 사용 강의 중 질문이 있습니다.
알려주신 업데이트된 openapi 강의를 유튜브에서 보고 따라하였는데 에러가 발생하여 문의드립니다. 발생한 에러는 이렇습니다. 혹시 크레딧이 없어서 발생하는 문제일까요?현재 크레딧 창을 보면 이렇게 되어 있네요..
-
미해결파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)
새로운 탭에서 설정 유지
핵심 노하우가 담긴 좋은 강의 감사합니다.링크를 클릭하면 새로운 탭이 열리는 경우가 있는데요. 그때는 설정한 user agent값이 없어지더라고요. 이걸 해결할 방법이 잘 떠오르지 않습니다. 해결책이 있을까요?
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
객체지향 출력 순서
제가 생각했을때는 print(argument1, argument2) 그 다음에 self.name이면1 2blue 사각형2 3yellow 사각형 순서로 출력이 되어야 할 것 같은데, 예상 밖이네요..혹시 이렇게 순서가 되는 이유가 있나요?
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
데이터 구조 (set) 질문있습니다
안녕하세요set으로 한개의 data만 저장을 하려고 할때{} 없이 변수 = set('data1') 이런 식으로 입력한다고하셨는데 jupyter notebook 에서 set('apple')을 실행한 결과 사진과 같이 {'a', 'e' ,'l' ,'p'} 로 분해되던데 왜그런걸까요??
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 기본편
자동로그인 문의
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: cannot parse capability: goog:chromeOptionsfrom invalid argument: unrecognized chrome option: excludesweitchesStacktrace: 이런 메세지가 뜨고 자동로그인 창이 안나오는데..왜 그런지 모르겠어요 ㅠㅡㅠ