묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
driver.execute_script("arguments[0].click()", element)이 작동하지 않습니다..
from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time import pandas as pd from selenium.webdriver.support.select import Select #드라이버 생성 driver = webdriver.Chrome() #페이지 이동 driver.get("https://cafe.naver.com/startcodingofficial") #유투브 후기 버튼 클릭 driver.find_element(By.CSS_SELECTOR, '#menuLink15').click() #프레임 전환 iframe = driver.find_element(By.CSS_SELECTOR, '#cafe_main') driver.switch_to.frame(iframe) #50개씩 표시하기 클릭 element = driver.find_element(By.CSS_SELECTOR, '#listSizeSelectDiv > ul > li:last-child') #50개씩 버튼 # #해결방법 1. 태그를 보이게 만들고 클릭하기. # driver.find_element(By.CSS_SELECTOR, '#listSizeSelectDiv > a').click() #15개씩 버튼 먼저클릭 해서 버튼 보이게 한 후 # element.click() #50개씩버튼 클릭 #해결방법 2. 자바스크립트 이용해서 태그 강제 클릭 driver.execute_script("arguments[0].click()", element) time.sleep(1)저는 이 코드를 실행하면 에러가 나는게 아니라 50개씩 버튼이 안 눌러지고 코드가 끝나는데 왜그런걸까요...
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
메일버튼 클릭하고 하단바에 메일버튼을 클릭하려고 하니까 ElementClickInterceptedException 이 발생했어요.
user_id = '****' user_pw = '****' from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time import pyperclip #드라이버 생성 driver = webdriver.Chrome() driver.implicitly_wait(10) #페이지 이동 driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/") time.sleep(1) #아이디 입력 id = driver.find_element(By.CSS_SELECTOR, '#id') pyperclip.copy(user_id) #클립보드라는 공간에 user_id를 복사해놓음. id.send_keys(Keys.CONTROL, 'v') #붙여넣기. time.sleep(1) #비밀번호 입력 pw = driver.find_element(By.CSS_SELECTOR, '#pw') pyperclip.copy(user_pw) #클립보드라는 공간에 user_pw를 복사해놓음. pw.send_keys(Keys.CONTROL, 'v') time.sleep(1) #로그인 버튼 클릭 driver.find_element(By.CSS_SELECTOR, '#log\\.login').click() # 메일 버튼 클릭 driver.find_element(By.CSS_SELECTOR, '#account > div.MyView-module__my_menu___eF24q > div > div > ul > li:nth-child(1) > a > span.MyView-module__item_text___VTQQM').click() driver.find_element(By.CSS_SELECTOR, '#account > div.MyView-module__layer_menu_service___NqMyX > div.MyView-module__service_sub___wix9p > div.MyView-module__sub_left___AIWHR > a').click() #새창으로 전환 driver.switch_to.window(driver.window_handles[1]) # 메일쓰기 버튼 클릭 driver.find_element(By.CSS_SELECTOR, '#root > div > nav > div > div.lnb_header > div.lnb_task > a.item.button_write').click() # 받는 사람 driver.find_element(By.CSS_SELECTOR, '#recipient_input_element').send_keys('gnslgnsdl@naver.com') # 제목 driver.find_element(By.CSS_SELECTOR, '#subject_title').send_keys('연습') #서브페이지로 이동 iframe = driver.find_element(By.CSS_SELECTOR, '#content > div.contents_area > div > div.editor_area > div > div.editor_body > iframe') driver.switch_to.frame(iframe) #본문 driver.find_element(By.CSS_SELECTOR, '#log\\.login').send_keys('연습중') #다시 메인페이지로 이동 driver.switch_to.default_content() #보내기 버튼 클릭 driver.find_element(By.CSS_SELECTOR, '#content > div.mail_toolbar.type_write > div:nth-child(1) > div > button.button_write_task').click()에러내용:예외가 발생했습니다. ElementClickInterceptedException Message: element click intercepted: Element <a href="https://mail.naver.com/" target="_blank" class="MyView-module__link_service___Ok8hP">...</a> is not clickable at point (937, 789). Other element would receive the click: <a href="#" role="button" class="SettingView-module__btn_setting___Z_3Uu SettingView-module__type_top___GkN8V" aria-pressed="false">...</a> (Session info: chrome=131.0.6778.205) Stacktrace: GetHandleVerifier [0x00007FF6E6F2FB05+28789] (No symbol) [0x00007FF6E6E986E0] (No symbol) [0x00007FF6E6D3592A] (No symbol) [0x00007FF6E6D90FDE] (No symbol) [0x00007FF6E6D8EA7C] (No symbol) [0x00007FF6E6D8BC46] (No symbol) [0x00007FF6E6D8ABA1] (No symbol) [0x00007FF6E6D7CD60] (No symbol) [0x00007FF6E6DAF43A] (No symbol) [0x00007FF6E6D7C5B6] (No symbol) [0x00007FF6E6DAF650] (No symbol) [0x00007FF6E6DCF654] (No symbol) [0x00007FF6E6DAF1E3] (No symbol) [0x00007FF6E6D7A938] (No symbol) [0x00007FF6E6D7BAA1] GetHandleVerifier [0x00007FF6E726933D+3410093] GetHandleVerifier [0x00007FF6E727E7DD+3497293] GetHandleVerifier [0x00007FF6E7272A73+3448803] GetHandleVerifier [0x00007FF6E6FF7BBB+848171] (No symbol) [0x00007FF6E6EA3C3F] (No symbol) [0x00007FF6E6E9F6E4] (No symbol) [0x00007FF6E6E9F87D] (No symbol) [0x00007FF6E6E8ED49] BaseThreadInitThunk [0x00007FF906E3259D+29] RtlUserThreadStart [0x00007FF90852AF38+40] File "C:\Users\gnslg\OneDrive\바탕 화면\PYTHON_CRAWLLING\셀레니움실전테크닉\06네이버메일자동화.py", line 36, in <module> driver.find_element(By.CSS_SELECTOR, '#account > div.MyView-module__layer_menu_service___NqMyX > div.MyView-module__service_sub___wix9p > div.MyView-module__sub_left___AIWHR > a').click() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <a href="https://mail.naver.com/" target="_blank" class="MyView-module__link_service___Ok8hP">...</a> is not clickable at point (937, 789). Other element would receive the click: <a href="#" role="button" class="SettingView-module__btn_setting___Z_3Uu SettingView-module__type_top___GkN8V" aria-pressed="false">...</a> (Session info: chrome=131.0.6778.205) Stacktrace: GetHandleVerifier [0x00007FF6E6F2FB05+28789] (No symbol) [0x00007FF6E6E986E0] (No symbol) [0x00007FF6E6D3592A] (No symbol) [0x00007FF6E6D90FDE] (No symbol) [0x00007FF6E6D8EA7C] (No symbol) [0x00007FF6E6D8BC46] (No symbol) [0x00007FF6E6D8ABA1] (No symbol) [0x00007FF6E6D7CD60] (No symbol) [0x00007FF6E6DAF43A] (No symbol) [0x00007FF6E6D7C5B6] (No symbol) [0x00007FF6E6DAF650] (No symbol) [0x00007FF6E6DCF654] (No symbol) [0x00007FF6E6DAF1E3] (No symbol) [0x00007FF6E6D7A938] (No symbol) [0x00007FF6E6D7BAA1] GetHandleVerifier [0x00007FF6E726933D+3410093] GetHandleVerifier [0x00007FF6E727E7DD+3497293] GetHandleVerifier [0x00007FF6E7272A73+3448803] GetHandleVerifier [0x00007FF6E6FF7BBB+848171] (No symbol) [0x00007FF6E6EA3C3F] (No symbol) [0x00007FF6E6E9F6E4] (No symbol) [0x00007FF6E6E9F87D] (No symbol) [0x00007FF6E6E8ED49] BaseThreadInitThunk [0x00007FF906E3259D+29] RtlUserThreadStart [0x00007FF90852AF38+40] 메일버튼 클릭하고 하단바에 메일버튼을 클릭하려고 하니까 ElementClickInterceptedException 이 발생했어요.driver.find_element(By.CSS_SELECTOR, '#account > div.MyView-module__layer_menu_service___NqMyX > div.MyView-module__service_sub___wix9p > div.MyView-module__sub_left___AIWHR > a').click()여기서 발생하는거 같은데 이유가 뭘까요..?
-
미해결코딩없이 시작하는 엑셀 크롤링. WEB부터 ChatGPT API까지
[질문] 네이버쇼핑 - 로그인이 필요한 제품에 가격 가져오기
안녕하세요. 네이버쇼핑에서 어떤 특정 제품은 로그인을 해야 제품 가격을 볼수 있는데요. (레이저 포인터는 19세 이상 구매할수 있어서 성인 인증을 받아야 합니다.)https://search.shopping.naver.com/catalog/11269411900?cat_id=50002931이런경우 파워쿼리로 웹 주소를 넣으면 로그인을 하라고 나오고 더이상 진행이 안 되구요. 말씀하신 네이버API 로 가져와볼려고 했더니 이런식으로 나오고 애플리케이션 등록이 등록이 안 되더라구요. 혹시 API 를 이미 발급 받아서 인걸까요? (API 상태라고 적혀있긴 합니다.)그리고 네이버 API 를 통해서, 네이버 로그인이 필요한 제품의 가격을 가져 올수 있을까요? 가져올려는 것은 아래의 가격 정보를 가져올려고 합니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버지식인 gui 추출하기
안녕하세요맥으로 수강중인 사람입니다.다름이아니라 네이버지식인gui를vscode에서 코드 실행 후 저장버튼을 누르면 엑셀파일로 저장이 잘되었는데 실행파일로 만들고 추출한다음 저장버튼을 누르면 저장이 되지않습니다이유를 알수있을가요?코드를 다시봐도 문제는 없는데 이유를 못찾겠습니다ㅠㅠ
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
커널(★Python 3.12.8 ~~맞춤 vs Python 3.12.8 ~~ Global Env)이 서로 다른것인가요?
안녕하세요오늘 네이버지식인GUI.exe를 만드는데 성공하였습니다. 그런데 처음에는 실패했습니다.그이유는 커널이 이미지에서 위에 것(★Python 3.12.8 ~~~ 맞춤)으로 되어 있었습니다.pip install pyinstaller 해도 설치가 안된것으로 나왔습니다.(pip --version으로 확인) 그런데 아래것(Python 3.12.8 ~~~Global Env) 선택하니 모든것이 잘 되었습니다. [문의사항]위에것 아래것 모두 버전이 Python3.12.8로 동일한데 이 두개가 서로 다른것인가요?만약 다르다면저는 python을 오늘 삭제하고 Python3.12.8을 1번만 설치했습니다. 이렇게 두개가 보이는 이유는 무엇일까요? 감사합니다.
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
주피터 노트북 관련해서 궁금한게 있습니다!
안녕하세요.주피터 노트북을 다운받았는데 강사님 인터페이스에서는 In []이렇게 나오는데 저는 In이 나오지 않아서요..혹시 제가 잘못 설치한건가 싶어서 여쭤봅니다
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
셀레니움 관련 질문입니다.
안녕하세요. 군대에서 정말 잘 듣고있습니다. 아무래도 싸지방이다보니 codespace로 동작시켰는데요.다름이 아니라 셀레니움 부분을 공부하던 중 어찌저찌해서 driver를 연결까진 했으나, 화면이 뜨지 않아서 질문드립니다.에러가 나는 것은 아니지만, 아마 GUI가 설정이 안되어있어서 그런 것 같습니다.어떻게 해야할까요? 아래는 driver = webdriver.Chrome()를 codespace에 맞게 변경한 코드이고from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options # ChromeDriver 경로 명시 chromedriver_path = "/usr/local/bin/chromedriver" # ChromeDriver 경로 chrome_path = "/usr/bin/google-chrome" # Chrome 브라우저 경로 (시스템에 따라 다를 수 있음) # Chrome 옵션 설정 options = Options() options.add_argument("--headless") # GUI 없이 실행 options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') options.binary_location = chrome_path # Chrome 브라우저 경로 설정 # ChromeDriver 서비스 설정 service = Service(chromedriver_path) # WebDriver 생성 driver = webdriver.Chrome(service=service, options=options)아래는 이로인해 나타나는 화면입니다.driver.get() 등등의 메소드를 이용하면 title, current_url의 결과로 잘 작동되는 것을 알 수 있습니다.하지만, 화면이 바뀌지 않아서 문제입니다.앞에서도 언급했지만, GUI를 codespace에서 설정하는 방법을 알아야할 거 같은데 쉽지 않습니다..GUI가 없다보니 headless를 설정할 수밖에 없었구요..
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
login.ui.py파일이 생성되지 않아요.
안녕하세요.저는 login.ui.py 파일이 생성되지 않아 문의 드립니다. 아래 캡켜화면은 저의 VScode입니다.강의에서 06.GUI프로그래밍을 프로젝트폴더로 선택한 상태에서아래의 터미널에 입력(pyside6-uic login.ui -o login_ui.py)을 하였으나에러문구가 뜹니다. 제가 무엇을 잘못했는지 궁금합니다.감사합니다. ================================================================강의 노트에 아래의 문구가 있어 다시 문의드립니다.(문의사항)확장프로그램(Qt for Python)은 이제 설치하지 않아도 되는가요?터미널에서 명령이 실행을 제가 올바르게 한건지 확인 부탁드립니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
추출한 데이터 자체의 문제에 대해 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. RISS의 주제저를 추출하는 부분에서 파이썬을 이용한 크롤링은 잘 되었습니다. 하지만 크롤링한 데이터를 보니 웹에는 표시되지 않는 문자들이 같이 출력되었습니다. 저만 이런 문자가 추가로 붙었는지 궁금해서 강사님의 강의도 보니 강사님의 강의에서도 똑같이 추출한 데이터에서 문자가 추가된 것을 확인할 수 있었습니다.마지막 줄에 AI하고 \u3000 이라는 문자가 추가되었는데 외주를 할 때 이런 오류는 문제가 되지 않는지 궁금합니다.
-
해결됨남박사의 파이썬 기초부터 실전 100% 활용
강의자료 이미지 안나옴
파이썬 기본문법 강의자료 이미지가 안나옵니다.
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
selenium 업그레이드됨... 문법도 바뀜
기존 강의에서elem = browser.find_element_by_id("query")였는데이제는elem = browser.find_element("id","query")이렇게 작성해야함 ㅜㅜ계속 AttributeError 떠서 미치는줄 알았는데 구글링해서 찾다보니 나와서 써보니 문법이 바뀐거였음
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
섹션8. 여러 태그제어하기 checkbox 자동선택시 궁금한게 있습니다
검사를 눌러 개발자도구로 가면 label이 선택되어....input-checkbox > label 로 잘가져오며 잘 테스트가 됩니다.따라하다 보니 궁금한점이 있습니다.checkbox에 클릭을 하는게 목적인데저는 이렇게 한번 시도해 봤습니다.checkboxes = driver.find_elements(By.CSS_SELECTOR, "input[type='checkbox']")# 각 체크박스 클릭for checkbox in checkboxes: if not checkbox.is_selected(): checkbox.click() time.sleep(0.5) # 잠시 대기 왜 label.click()만 되는지 궁금합니다
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
def에서 print와 return의 차이점이 뭘까요?
안녕하세요~! 잔재미코딩님을 열심히 믿고 따라가고 있는 수강생입니다.다름이 아니라 함수 사용에서 print와 return의 차이점이 잘 이해가 되지 않아서요. def cal(a, b, c):if c == '+' :return a + belif c == '*' :return a * belse :return 0 예를 들면 위 함수 코드를 실행하고data = cal(2, 3, "*")print(data)를 실행하면 바로 6이 나오지만 위의 코드에서 return대신 print()를 사용하면data = cal(2, 3, "*")print(data)를 실행 시6None이 나온다는 차이점은 느꼈습니다.근데 왜 이런것인지 잘 이해가 안돼요 ㅠㅠ 정확한 둘의 사용상 차이점이 무엇인가요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
강의자료 문의 드립니다.
안녕하세요강의 잘 듣고 있습니다. 처음이라 속도가 나지는 않지만 재밌게 잘 듣고 있습니다. 카페에서 다운받은 자료집 2개(초고속 파이썬 정복, 1분 파이썬 강의자료)가 있습니다.이것외에 혹시 강의자료나 자료집이 있는지 궁급합니다. 감사합니다.
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
한글폰트 관련해서 문의드립니다.
안녕하세요 다른 쥬피터랩에서 실행하고 있는데요..import koreanize_matplotlib 진행을 했는데도... import koreanize_matplotlibimport matplotlib.pyplot as pltimport seaborn as snsimport pandas as pdfrom pandas.plotting import register_matplotlib_converters# 그래프에 retina display 적용%config InlineBackend.figure_format = 'retina'register_matplotlib_converters() # Matplotlib에서 날짜 데이터를 처리하기 위한 변환기 등록# 데이터 예시 (실제 사용 시 'data' DataFrame이 필요합니다)data = pd.DataFrame({ '등록일시': ['2023-01-01', '2023-02-01', '2023-03-01'], '참가업체수': [10, 15, 20]})data['등록일시'] = pd.to_datetime(data['등록일시'])# '등록일시'를 기준으로 데이터 정렬data_sorted = data.sort_values('등록일시')# 시간에 따른 '참가업체수' 선 그래프 그리기plt.figure(figsize=(12, 6)) # 그래프 크기 설정sns.lineplot(data=data_sorted, x='등록일시', y='참가업체수') # 선 그래프 생성plt.title('시간에 따른 참가업체수 분석') # 그래프 제목 설정plt.xlabel('날짜') # x축 라벨 설정plt.ylabel('참가업체수') # y축 라벨 설정plt.xticks(rotation=45) # x축 눈금 라벨 회전plt.tight_layout() # 그래프 레이아웃 조정# 그래프 표시plt.show()이런 에러가 계속 나서요.. 혹시 어떻게 진행하면...될까요 ㅜㅜ
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
append 함수에서 추가가 안됩니다.
에러는 안뜬것같은데 다음과 같이 추가가 안됩니다 ㅠ
-
해결됨남박사의 파이썬 기초부터 실전 100% 활용
강의자료 질문 두번째
자료가 파이썬 소스코드로 되어 있는데 출력된 결과물을 PDF로 볼수 있을까요?
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
강의자료 관련 질문
혹시 강의 자료는 어디서 다운로드 가능한가요?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
연습문제1번 추가질문
연습문제 1번 Blog와 about 메뉴리스트 출력하기 중select_one을 이용해 하위 태그를 이용했는데blog 라는 결과값이 중복되서 나오드라구요하위태그의 클래스 이름이 같기 때문에 첫 번째 blog만 나오게 되는건가요? 저는 상위 태그가 다르기 때문에 별도로 blog와 about 나올거라 생각을 한것 같습니다.설명 부탁드리겠습니다.
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
연습문제1번
연습문제 1번 Blog와 about 메뉴리스트 출력하기 중문자열로 변환하는 함수에서변수.string 과 변수.get_text() 결과값이 다르게 나오는데 차이점 설명 부탁드립니다.