묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 기본편
셀레니움4로 실습을 해보았는데 불필요한 코드가 포함되어있을까요??
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By import time from selenium.webdriver.common.keys import Keys # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 불필요한 에러 메시지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-looging"]) # 브라우저 생성 service = Service(executable_path=ChromeDriverManager().install()) driver = webdriver.Chrome(service=service) # 웹 사이트 열기 driver.maximize_window() driver.get("https://www.naver.com") driver.implicitly_wait(10) # 로딩이 끝날 때까지 10초는 기다림 # 쇼핑 메뉴 클릭 driver.find_element(By.CSS_SELECTOR, "#shortcutArea > ul > li:nth-child(4) > a").click() time.sleep(2) # 새창을 바라보게 만들기 new_window = driver.window_handles[1] driver.switch_to.window(new_window) # 검색창 클릭 search = driver.find_element(By.CSS_SELECTOR, "input._searchInput_search_text_3CUDs") search.click() # 검색어 입력 search.send_keys("아이폰 13") search.send_keys(Keys.ENTER) # 브라우저 종료 방지 - 입력 대기 input("로그인 성공 후 프로그램을 종료하려면 엔터 키를 눌러주세요.") # 브라우저 종료 driver.quit() 안녕하세요.이번 강의를 참고하여 셀레니움4로 코드를 적용해보았는데불필요한 라이브러리나 코드을 추가한게 있을까요?..
-
해결됨[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
쿠팡 첫페이지 관련 href 오류가 뜹니다.
강의노트에 올려주신 코드를 그대로 복붙해서 실행시켰는데,C:\CRAWLLING> cmd /C "C:\Users\libra_erv8ij1\AppData\Local\Programs\Python\Python312\python.exe c:\Users\libra_erv8ij1\.vscode\extensions\ms-python.python-2023.20.0\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher 1693 -- "c:\CRAWLLING\CRAWLING 심화\ch3. 쿠팡크롤링\01.첫번째페이지크롤링.py" "Traceback (most recent call last): File "c:\CRAWLLING\CRAWLING 심화\ch3. 쿠팡크롤링\01.첫번째페이지크롤링.py", line 20, in <module> sub_url = "https://www.coupang.com" + link.attrs['href'] ~~~~~~~~~~^^^^^^^^KeyError: 'href'href 관련 오류가 나옵니다. 왜그러는걸까요?
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 기본편
현재 주식가를 불러오지 못 하고있습니다.
import requests from bs4 import BeautifulSoup url = "https://finance.naver.com/item/main.naver?code=000660" res = requests.get(url).text soup = BeautifulSoup(res, 'html.parser') price = soup.select_one("#_nowVal") print(price)태그는 강의와 같이 그대로인데 실행하면 None이라고 뜹니다... 네이버에서 크롤링을 막아놓은건지 저번에도 웹툰크롤링 할때도 위와같이 None이 떠서 포기했었는데 뭐가 문제인지 아직 파악을 못하겠네요.. 시세부분은 Allow여서 허용같은데... 무슨 문제인지 알려주시면 감사하겠습니다 ㅠㅠ
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
print 출력 시 오류
print (age, name)은 정상 출력되어지나print (age, name, foot_size) 입력시 출력이 되지 않습니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
쿠팡 크롤링시 연결이 비공개로 설정되어 있지 않습니다. 경고문 발생하였습니다.
크롤링을 하게 되면 크롤링한 사이트의 정보는 가져오는데 링크를 클릭하면 "연결이 비공개로 설정되어 있지 않습니다." 이렇게 발생합니다. 이게 쿠팡에서 크롤링을 막은 것인지 아니면 어떠한 문제 때문에 그런건가요? 그리고 해결 방법은 무엇이 있을까요?인터넷 검색해보니 여러가지 답변이 있는데 맞는 방법인지 잘 몰라서 문의 드립니다.
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
데이터 비교시 데이터 불일치
오래전에 강의듣다 포기하고 다시 시작하는 중입니다.많은도움 감사합니다. 삼성전자 주식데이터와 금리와의 비교데이터를 만들다 해결이 되지 않아 질문 드립니다.삼성전자stock_code= fdr.DataReader(stock_code, stock_start_data, stock_end_data)stock_code.tail(1) 금리pd.read_csv("한국은행 기준금리 및 여수신금리_23054821.csv", encoding="cp949")이걸합치 날짜가 아닌 3439로 출력이 됩니다. 두게의 데이터를 합쳐 관계를 분석하고 싶은데 3439으로 출력이되면서 그래프가 두게로 표시가됩니다날짜로 변경하여 그래프가 출력되도록 하고싶은데 방법을 모르겠습니다. 만들고 싶은 그래프(아래)
-
미해결일잘하는 마케터, MD에게 꼭 필요한 파이썬 데이터 분석
5강 처음부터 전혀 따라 갈수가 없어요
필수라이브러리를 공유드린 소스 코드에서 붙여 넣으라는데 노트에 적힌 주소 중 어떤것인가요? 너무 불친절하게 가르치는거 아닌가요? 소스코드 정보를 열었는데 라이브러리는 어디에서 어떻게 하는것인지 너무 불친절 하시네요
-
해결됨[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
html에서 가져오지 못하는 부분이 있어 질문 드립니다.
import requests from bs4 import BeautifulSoup headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36' } url = 'https://new.land.naver.com/complexes/8928?ms=37.2110479,127.0941727,16&a=APT:ABYG:JGC:PRE&b=B1&e=RETAIL&ad=true&articleNo=2350848148' article_response = requests.get(url, headers=headers) html = article_response.text soup = BeautifulSoup(html, 'html.parser') items = soup.select(".info_title") #Select의 결과는 리스트자료형 print(items)안녕하세요. 강의 다 들은지는 꽤 됬는데 beautifulsoup을 오랜만에 사용하려니 막혀서 질의드립니다. ㅠurl의 네이버 부동산에 들어가서 해당 매물의 중개소 정보를 가져오려고 하는데요.분명 크롬 개발자도구에서 info_title 클래스의 div 태그가 있음에도 아무것도 파싱되지 않습니다. ㅠ다른 클래스로 지정시 파싱은 잘 되서 코드에는 문제가 없는거 같은데 유독 저것만 왜 안나오는 걸까요 ㅠ
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
Javascript와 iframe이 포함된 url cawling시 문제점
안녕하세요.Javascript나 iframe등이 포함된 url을 crawling할때 devTools에서는 분명히 element가 존재하는데Selenium WebDriver의 page_source에는 추가된 element는 없고 JavaScript와 기타 code만 보이는 문제가 있습니다. Javascript나 iframe등이 실행되고 난 결과의 html,즉 element가 전부 업데이트된 것을 받아 볼수 있는 방법이 없을까요?sleep,wait등을 충분히 줬는데도 해결이 안되네요. 감사합니다. ^^
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
숫자야구 코드를 짜 봤는데 뭔가 이상합니다.
# v2: 안 보고 만들기 (23.11.21)from random import randintfrom os import systemanswer = []num = str(randint(0, 9))for i in range(3): while num in answer: num = str(randint(0, 9)) answer.append(num)strikes = 0balls = 0system('cls')while strikes < 3: user_input = str(input("3자리 숫자를 입력해 주세요.")) if len(user_input) != 3: print("3자리 자연수를 입력해주세요.") continue if not user_input.isdigit(): print("문자 말고 숫자를 입력해주세요.") continue if user_input[0] == user_input[1] or user_input[1] == user_input[2] or user_input[0] == user_input[2]: print("중복된 숫자 없이 입력해주세요.") continue strikes = 0 balls = 0 # 숫자 비교 for i in user_input: for j in answer: if i in answer and i == j: strikes += 1 if i in answer and i != j: balls += 1 if strikes != 3: print(f"{strikes} 스트라이크, {balls} 볼") else: print("성공!") 37, 39에서 저는 i in answer를 써 봤는데요. 막 2 스트라이크 4 볼이 나오고 그런 현상이 생깁니다ㅠㅠ
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
45번 문제 질문 있습니다.
안녕하세요. 45번 문제 풀어보는데 달러로는 잘 나오는데위안이나 엔도 달러값으로만 나오는것 같습니다.ㅜㅜ
-
미해결업무 자동화를 위한 파이썬 pyautogui, beautifulsoup 크롤링 기초
크롤링 실행시 멈춤
쿠팡 크롤링을 진행하려고합니다 처음에 확인을 위해 실행 시켜보았는데 input으로 제품 검색하면 목록이 뜨는겁니다. 하지만 입력하면 저상태에서 그냥 멈춰있습니다. 다시 실행도 안되구요 디버깅만 됩니다. 터미널창을 다 지우고 해보아도 그대로입니다. 어떤 문제일까요 ? 현재까지 쓴 코드이고 이것을 실행시키면 저 위와 같이 됩니다.한 100번 실행 본다는 가정하에는 1번씩은 불러올때도 있습니다.
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
NoSuchElementException Stacktrace 에러입니다.
진행 중 에러가 나왔습니다.. 해당 부분에서 어떻게 잘못되었는지 파악을 못해서 글 남깁니다.. File "c:\Users\cksth\OneDrive\바탕 화면\Career\크롤링\심화3\09.click.py", line 71, in <module> raise exception_class(message, screen, stacktrace)selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"img.sFlh5c.pT0Scc.iPVvYb"} (Session info: chrome=119.0.6045.124); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exceptionStacktrace: from 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 urllib.request import time import pyautogui import os # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 크롬창 안뜨게 함 # chrome_options.add_argument('--headless') # headless 모드 활성화 # chrome_options.add_argument('--disable-gpu') # GPU 가속 비활성화 # 불필요 메세지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 크롬 드라이버 자동 업데이트 browser = webdriver.Chrome(options=chrome_options) keyword = pyautogui.prompt('검색어를 입력하세요.') cnt = 0 # 폴더 만들기 (이미 존재하면 += 1) while True: cnt += 1 folder_path = f'크롤링/심화3/{keyword}{cnt}모음' if not os.path.exists(folder_path): os.mkdir(folder_path) break path = f'https://www.google.com/search?q={keyword}&sca_esv=581612012&tbm=isch&sxsrf=AM9HkKnRu6DCGGz23e29xT4BSB7Hq95zgA:1699754235522&source=lnms&sa=X&ved=2ahUKEwiboaf7rb2CAxWJfd4KHWkWA9MQ_AUoAXoECAQQAw&biw=1552&bih=737&dpr=1.65' # 구글 browser.implicitly_wait(3) browser.maximize_window() browser.get(path) before_h = browser.execute_script("return window.scrollY") # 무한스크롤 while True: # 맨 아래로 스크롤을 내림 browser.find_element(By.CSS_SELECTOR,"body").send_keys(Keys.END) time.sleep(5) # 스크롤 후 높이 after_h = browser.execute_script("return window.scrollY") # 스크롤 높이가 맨 아래와 같다면 무한루프 탈출 if after_h == before_h: print('OKOK') break # 스크롤 높이 업데이트 before_h = after_h # 썸네일 이미지 태그 추출 imgs = browser.find_elements(By.CSS_SELECTOR, '.rg_i.Q4LuWd') for i, img in enumerate(imgs, 1): # 이미지 클릭 후 큰 사이즈 찾음 # 클릭하면 element click intercepted -> JS 로 직접 클릭 유도 browser.execute_script('arguments[0].click();', img) time.sleep(1) # 큰 이미지 주소 추출 target = browser.find_element(By.CSS_SELECTOR, 'img.sFlh5c.pT0Scc.iPVvYb') img_src = target.get_attribute('src') # 에러 해결중 # if i == 1: # target = browser.find_elements(By.CSS_SELECTOR, 'img.sFlh5c.pT0Scc.iPVvYb')[0] # else: # target = browser.find_elements(By.CSS_SELECTOR, 'img.sFlh5c.pT0Scc.iPVvYb')[1] # img_src = target.get_attribute('src') # urllib.error.HTTPError: HTTP Error 403: Forbidden 해결방안 3줄 opener = urllib.request.build_opener() opener.addheaders = [('User-Agent', 'Mozila/5.0')] urllib.request.install_opener(opener) # 이미지 저장 try: urllib.request.urlretrieve(img_src, f'크롤링/심화3/{keyword}{cnt}모음/{keyword}{i}.png') except: pass print(f'img {i}개: {target}') print('\nDvlp.H.Y.C.Sol\nJason')
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
구글 큰이미지 크롤링 IndexError입니다.
안녕하세요. 이전 에러를 해결하고 다시 코드를 잡기 시작했습니다...에러 내용은 IndexError: list index out of range 입니다.다른분이 올려주신 글을 읽어보기도 했는데 제 코드에서는 문제점이 무엇인지 잘 모르겠습니다.두번째 인덱스가 없기 때문인거같은데큰 그림만 가져오고싶습니다 ㅠ from 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 urllib.request import time import pyautogui import os # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 크롬창 안뜨게 함 chrome_options.add_argument('--headless') # headless 모드 활성화 chrome_options.add_argument('--disable-gpu') # GPU 가속 비활성화 # 불필요 메세지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 크롬 드라이버 자동 업데이트 browser = webdriver.Chrome(options=chrome_options) keyword = pyautogui.prompt('검색어를 입력하세요.') cnt = 0 # 폴더 만들기 (이미 존재하면 += 1) while True: cnt += 1 folder_path = f'크롤링/심화3/{keyword}{cnt}모음' if not os.path.exists(folder_path): os.mkdir(folder_path) break path = f'https://www.google.com/search?q={keyword}&sca_esv=581612012&tbm=isch&sxsrf=AM9HkKnRu6DCGGz23e29xT4BSB7Hq95zgA:1699754235522&source=lnms&sa=X&ved=2ahUKEwiboaf7rb2CAxWJfd4KHWkWA9MQ_AUoAXoECAQQAw&biw=1552&bih=737&dpr=1.65' # 구글 browser.implicitly_wait(3) browser.maximize_window() browser.get(path) before_h = browser.execute_script("return window.scrollY") # 무한스크롤 while True: time.sleep(5) # 맨 아래로 스크롤을 내림 browser.find_element(By.CSS_SELECTOR,"body").send_keys(Keys.END) # 스크롤 후 높이 after_h = browser.execute_script("return window.scrollY") # 스크롤 높이가 맨 아래와 같다면 무한루프 탈출 if after_h == before_h: print('OKOK') break # 스크롤 높이 업데이트 before_h = after_h # 썸네일 이미지 태그 추출 imgs = browser.find_elements(By.CSS_SELECTOR, '.rg_i.Q4LuWd') for i, img in enumerate(imgs, 1): # 이미지 클릭 후 큰 사이즈 찾음 img.click() time.sleep(1) # 큰 이미지 주소 추출 if i == 1: target = browser.find_elements(By.CSS_SELECTOR, 'img.sFlh5c.pT0Scc.iPVvYb')[0] else: target = browser.find_elements(By.CSS_SELECTOR, 'img.sFlh5c.pT0Scc.iPVvYb')[1] # IndexError: list index out of range img_src = target.get_attribute('src') # urllib.error.HTTPError: HTTP Error 403: Forbidden 해결방안 3줄 opener = urllib.request.build_opener() opener.addheaders = [('User-Agent', 'Mozila/5.0')] urllib.request.install_opener(opener) # 이미지 저장 try: urllib.request.urlretrieve(img_src, f'크롤링/심화3/{keyword}{cnt}모음/{keyword}{i}.png') except: pass print(f'img {i}개: {target}') print('\nDvlp.H.Y.C.Sol\nJason')
-
미해결내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)
네이버 부동산 매물 크롤링 오류
해당 커리큘럼 수행 중 질문드립니다.개포동의 모든 아파트 단지 매물을 크롤링하고싶은데,강사님꼐서 하신방법을 해보니 화면에 떠있는 마커들의 단지들만 크롤링해오는것 같습니다. 지도를 줌아웃 상태에서 complex_id 를 len 찍어보니 계속 변하네요.해당부분 확인부탁드립니다.감사합니다.
-
미해결[웹 개발 풀스택 코스] Node.js 프로젝트 투입 일주일 전 - 기초에서 실무까지
그럼 그걸 다 들어야 하나요?
다른 강의에 테이블이 있다고 해서 가보니..파일로 있는 게 아니고 화면에 있던데..그러면 저 처럼 그런 강의가 필요 없는 사람은..그걸 다 보고 만들라는 건가요? 그러기엔 시간이 아까운데요?하루죙일..개발 하다가 왔는데..그걸 보고 일일이 쳐서 만들라는 건 좀 아니지 않나요?
-
미해결일잘하는 마케터, MD에게 꼭 필요한 파이썬 데이터 분석
SQLITE 테이블 생성 오류
강사님 안녕하세요!쉽게 잘 설명해주신 덕에 어렵지 않게 하루하루 열심히 강의 듣고 있습니다, 감사합니다. 다름이 아니라 SQLITE 설치하고 테이블을 생성하는데 이러한 오류가 뜹니다. 구글링을 해봐도 잘 해답이 나오지 않는데 어떻게 하면 좋을까요?그럼 답변 기다리겠습니다.감사합니다!
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
웹드라이버 오류
driver = webdriver.Chrome()여기서 계속 오류가 나는데요.혹시 최근에 바뀐게 있나요? 강의 내용 외 개인적인 실습 사이트의 질문은 답변이 제공되지 않습니다.문제가 생긴 코드, 에러 메세지 등을 꼭 같이 올려주셔야 빠른 답변이 가능합니다.코드를 이미지로 올려주시면 실행이 불가능하기 때문에 답변이 어렵습니다.답변은 바로 제공되지 않을 수 있습니다.실력 향상을 위해서는 직접 고민하고 검색해가며 해결하는 게 가장 좋습니다.
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
셀레니움 크롬드라이버 질문입니다.
안녕하세요 강사님.크롬드라이버를 따로 업데이트 하는 로직으로 구현해서 크롤링중입니다.문제는 url을 호출해서 크롬이 열리면 오래전 구글 화면이 나옵니다. 결과도 물론 옛날꺼구요,, 아래 그림처럼 오른쪽 화면이 나옵니다.드라이버를 업데이트 하는 방식이 아닌 다른 방식을 사용 했을 때 작동이 안되고 오류가 나기 때문에 이 방식으로 사용하고있었습니다.일단 실행해서 작동하는 부분만 코드 첨부하겠습니다 ㅠㅠ 해결방안을 알려주세용..드라이버를 다운받아서 하는 방식은 에러가 나기 때문에,, 크롬드라이버 업데이트 하는 방식으로 진행해야할것같습니다..그리고 크롬드라이버를 업데이트 하는 방식은find_elements를 사용해야하는데imgs = browser.find_elements(By.CSS_SELECTOR, '.rg_i.Q4LuWd')해당 부분에서 .click을 지원하지 않는데 어떻게 해야할까요아래 전체 코드 첨부합니다! from 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 urllib.request # 크롬 드라이버 자동 업데이트 from webdriver_manager.chrome import ChromeDriverManager import time import pyautogui import os # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 크롬창 안뜨게 함 # chrome_options.add_argument('--headless') # headless 모드 활성화 # chrome_options.add_argument('--disable-gpu') # GPU 가속 비활성화 # Mozilla 웹 브라우저에서 온 것처럼 인식 / 자동화된 요청을 감지하고 차단하는 것을 우회 chrome_options.add_argument("--user-agent=Mozilla/5.0") # 불필요 메세지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 드라이버 업데이트 service = Service(executable_path=ChromeDriverManager().install()) # 옵션 적용 browser = webdriver.Chrome(service=service, options=chrome_options) keyword = pyautogui.prompt('검색어를 입력하세요.') cnt = 0 # 폴더 만들기 (이미 존재하면 += 1) while True: cnt += 1 folder_path = f'크롤링/심화3/{keyword}{cnt}모음' if not os.path.exists(folder_path): os.mkdir(folder_path) break path = f'https://www.google.com/search?q={keyword}&sca_esv=580120143&hl=ko&tbm=isch&sxsrf=AM9HkKmDd46NefxcclWk71YsVWobVHQsIw:1699362285857&source=lnms&sa=X&ved=2ahUKEwicopLr-bGCAxXV-mEKHbygCZgQ_AUoAXoECAMQAw&biw=1455&bih=705&dpr=1.1' # 구글 browser.implicitly_wait(5) browser.maximize_window() browser.get(path) before_h = browser.execute_script("return window.scrollY") # 무한스크롤 while True: time.sleep(2) # 맨 아래로 스크롤을 내림 browser.find_element(By.CSS_SELECTOR,"body").send_keys(Keys.END) # 스크롤 후 높이 after_h = browser.execute_script("return window.scrollY") # 스크롤 높이가 맨 아래와 같다면 무한루프 탈출 if after_h == before_h: break # 스크롤 높이 업데이트 before_h = after_h imgs = browser.find_elements(By.CSS_SELECTOR, '.rg_i.Q4LuWd')
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
.f로 출력할 때 반올림 값
다음 수식을 실행하면 결과 값이 왜 1.2가 나오나요?수식 결과가 1.25이므로 1.3이 나아야할 것 같은데p = 5/4print(format(p , ".1f"))