묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버 쇼핑 링크 변경에 따른 실습 문의
안녕하세요 크롤링이 뭔지 아예 모르다가 이게 조금씩 눈을 뜨고 있는 뉴비입니다~! 네이버 쇼핑 홈페이지 변경 및 HTML 구조 변경으로 설명이 한번 더 되면 좋겠습니다 강의에 나온 것처럼 나무태그를 찾으려 해도 현재 기준 네이버 쇼핑 HTML 구조를현재 강의 내용을 기반으로 따라 할 수가 없습니다ㅠㅠ(상위 클래스로 검색해도 안나오는..??) https://search.shopping.naver.com/ns/search?query=%EB%8B%AD%EA%B0%80%EC%8A%B4%EC%82%B4 기회가 된다면 업데이트를.. 안된다면 유투브로 보여주셔도 짤막하게라도 보여주시면 좋을거 같습니다!! 감사합니다~!
-
미해결남박사의 파이썬으로 봇 만들기 with ChatGPT
맛집 검색 네이버 api 403에러 나는데 현재 막혔나요?
https://map.naver.com/p/api/smart-around/places?searchCoord=127.119009%3B37.296806&boundary=127.11741034949176%3B37.289602227353484%3B127.12082211935848%3B37.303838401625484&code=01&limit=20&sortType=RECOMMEND&timeCode=EVENING 접속을 하니 403 Forbiddennginx 납니다.
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
jupyter note launch 무반응
강의와 동일하게 업그레디으 버전 6.5.2 버전으로 설치 후 launch버튼을 눌렀으나 강의처럼 새로운 창이 뜨지 않고 아무런 반응이 없어요. 새로고침도 해보고, 업그레이드도 해보고 다 해봤는데 전혀 무반응이네요. 어떻게 해야하나요
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
'int' object is not callable
사용자 입력을 int 형 변환으로 받기 위해서 썼는데 저런 에러가 뜹니다. 찾아보니 예약어를 변수로 썼을 때 일어나는 에러라는데 전 int 를 변수로 쓰지 않았습니다. 왜 이런 걸까요?
-
해결됨파이썬으로 나만의 블로그 자동화 프로그램 만들기
vscode말고 cursor ai사용해도 되나요
vs코드랑 cursor랑 다른거죠..? vs코드에 ai 랑 이거저거 붙이면 cursor되는걸로 아는데 제가 이해를 제대로 한게 맞을까요.. 코드 완전 초보라 암것도 몰라요;
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버쇼핑(닭가슴살) 크롤링
안녕하세요 스타트코딩님! 수업 잘 듣고 있는 학생입니다. 질문이 있어 글 남깁니다.수업 듣기 전에 혼자 해볼 때 저는 soup를 사용하지 않고 find_element를 사용해서 이렇게 코드를 작성했는데 뭐가 다른 걸까요?from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time import pandas as pd driver = webdriver.Chrome() driver.get('https://search.shopping.naver.com/search/all?query=%EB%8B%AD%EA%B0%80%EC%8A%B4%EC%82%B4') # 스크롤 전 높이 last_height = driver.execute_script('return document.body.scrollHeight') while True: # 스크롤 끝까지 내리기 driver.execute_script('window.scrollTo(0, document.body.scrollHeight)') # 대기 시간 줘야됨 !!! time.sleep(1) # 스크롤 후 높이 after_height = driver.execute_script('return document.body.scrollHeight') # 비교 (if, break) if last_height == after_height: break # 스크롤 전 높이 업데이트 last_height = after_height products = driver.find_elements(By.CSS_SELECTOR, '.product_item__MDtDF') data = [] for product in products: name = product.find_element(By.CSS_SELECTOR, '.product_title__Mmw2K').text link = product.find_element(By.CSS_SELECTOR, '.product_title__Mmw2K > a').get_attribute('href') price = product.find_element(By.CSS_SELECTOR, '.price_num__S2p_v').text.split('원')[0].replace(',', '') data.append([name, link, int(price)]) df = pd.DataFrame(data, columns = ['상품명', '상세페이지링크', '가격']) df.to_excel('네이버쇼핑.xlsx')
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
크롤링 결과 값이 달라요
제가 RISS 크롤링 강의를 듣는데 저는 강사님과 다르게 결과물이 하나밖에 안 뜨는데 왜 그런지 잘 모르겠습니다. 이런식으로 한개 밖에 안 뜨네요. 파이썬에 import requestsfrom bs4 import BeautifulSoupparam = { 'isDetailSearch': 'N', 'searchGubun': 'true', 'viewYn': 'OP', 'strQuery': '패션 인공지능', 'order': '/DESC', 'onHanja': 'false', 'strSort': 'RANK', 'iStartCount': 0, 'sflag': 1, 'isFDetailSearch': 'N', 'pageNumber': 1, 'resultKeyword': '패션 인공지능', 'icate': 're_a_kor', 'colName': 're_a_kor', 'pageScale': 10, 'isTab': 'Y', 'query': '패션 인공지능',}response = requests.get("https://www.riss.kr/search/Search.do?", params=param)html = response.textsoup = BeautifulSoup(html, 'html.parser')articles = soup.select(".srchResultListW > ul > li")# 헤더가 필요한 경우header = { 'User-Agent' : 'Mozilla/5.0', 'Referer' : 'https://www.riss.kr/search/Search.do?isDetailSearch=N&searchGubun=true&viewYn=OP&queryText=&strQuery=%ED%8C%A8%EC%85%98+%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5&exQuery=&exQueryText=&order=%2FDESC&onHanja=false&strSort=RANK&p_year1=&p_year2=&iStartCount=0&orderBy=&mat_type=&mat_subtype=&fulltext_kind=&t_gubun=&learning_type=&ccl_code=&inside_outside=&fric_yn=&db_type=&image_yn=&gubun=&kdc=&ttsUseYn=&l_sub_code=&fsearchMethod=&sflag=1&isFDetailSearch=N&pageNumber=1&resultKeyword=%ED%8C%A8%EC%85%98+%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5&fsearchSort=&fsearchOrder=&limiterList=&limiterListText=&facetList=&facetListText=&fsearchDB=&icate=re_a_kor&colName=re_a_kor&pageScale=100&isTab=Y®nm=&dorg_storage=&language=&language_code=&clickKeyword=&relationKeyword=&query=%ED%8C%A8%EC%85%98+%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5' }for article in articles: title = article.select_one(".title > a").text link = 'https://www.riss.kr/' + article.select_one(".title > a").attrs['href'] # 상세 페이지 요청response = requests.get(link, headers=header, verify=False)html = response.textsoup = BeautifulSoup(html, 'html.parser')press = soup.select_one(".infoDetailL > ul > li:nth-of-type(2) > div").textyear = soup.select_one(".infoDetailL > ul > li:nth-of-type(5) > div").textprint(title, link, press, year)이렇게 했는데 왜 저는 결과물이 하나밖에 안나오는지 못찾겠어요..!
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
연습 문제 6번 find 이용 질문
css select대신 find 함수를 사용해서 이런 식으로 작성했더니, 같은 결과가 나오긴 했지만 너무 비효율적인거 같아서 질문드립니다. 더 깔끔하게 find를 사용해서 가져오는 방법이 있을까요?from bs4 import BeautifulSoup import requests url="https://davelee-fun.github.io/" res=requests.get(url) soup=BeautifulSoup(res.content,"html.parser") all=soup.find("div", "text-center") items=all.find("span") ls=[] for item in items : ls.append(item.get_text().strip()) print(ls[1]+" "+ls[2]+" "+ls[3])
-
해결됨파이썬으로 나만의 블로그 자동화 프로그램 만들기
쿠팡 파트너스 API 키 발급은 어떻게 받나요?
쿠팡 파트너스 API 키 발급은 어떻게 받나요? 확인해보니 파트너로 등록하고 최소 15만원 정도 판매해야 파트너스 API가 발급되는거같은데, 어떻게 해야되는건지 궁금합니다.
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
함수의 파라미터값 msg
안녕하세요 강사님,def input_check(msg, casting=int):부분에서 msg 파라미터 값은 왜 들어있는건가요?제가 진행해보았을때는 msg 파라미터값을 없애고 진행해도 게임이 진행됩니다.def input_check(casting=int): while True: try: user_input = casting(input("몇 일까요? > ")) return user_input except: print("숫자만 입력하세요.") continue......while count < chance : count += 1 user_input = input_check() if user_input == number : break elif user_input < number : print("{} 보다 큰 숫자 입니다.".format(user_input)) elif user_input > number : print("{} 보다 작은 숫자 입니다.".format(user_input)) 감사합니다.
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
같은 코드인데도 하나는 정상적으로 되고 하나는 에러가 뜨는 이유가 뭘까요 ?ㅜㅜ
똑같은 코드인데이 코드는 정상적으로 뜨고 요놈은 오류가 나는데 이유가 뭘까요?이런 오류가 자주 발생하는데 이유를 모르겠어요턱턱 막히네요 ㅠㅠ
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
특정 텍스트가 포함되는 태그 여러개 찾기
안녕하세요, [텍스트를 포함하는 태그 찾기(정규표현식)] 강좌에서 특정 텍스트로 시작하는 태그 여러개 찾기와, 특정 텍스트로 끝나는 태그 여러개 찾기 실습을 하면서 궁금증이 생겨 질문 드립니다. [for*="obb"]처럼 for 속성자 중에 obb가 포함되어 있는 것을 찾는 코드처럼soup.find_all 명령어를 활용해서 제목 중간에 256GB가 적혀있는 태그를 여러개 찾으려면 *를 활용해서 어떻게 코드를 작성할 수 있는지 궁금합니다!
-
해결됨코딩없이 시작하는 엑셀 크롤링. WEB부터 ChatGPT API까지
나라장터 URL 수집
다비 강사님 안녕하세요.강의 너무 잘 듣고 있습니다. 감사합니다. 나라장터 조달청 입찰공고 강의 중 내용을 실습하고 있는데요.몇 일전 나라장터 사이트가 리뉴얼이 되더니 URL 수집이 잘 안됩니다. 개발자 페이지에서 URL을 눌렀을때 preview도 loading중이라고만 뜨고 결과가 안나오며, 검색창에 입력해봐도 마찬가지입니다. 제가 뭘 놓치고 있는걸까요?조언 부탁 드립니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
login.ui를 업데이트 해도 login_ui.py가 업데이트 되지 않아요!
login.ui를 업데이트 해도 login_ui.py가 업데이트 되지 않아요!저는 vsc에서 login.ui를 우클릭해도 edit qt ui file(designer)가 나오지 않아서.. 직접 designer 프로그램을 킨후에 id, pw, login_btn으로 수정한후 저장했는데요. login_ui.py는 자동으로 수정되지 않네요? 어떻게 해야할까요!
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
python-question2 Exercise 16. 조건문 문제
num1 = int(input())num2 = int(input())num3 = int(input())if num1 > num2 : if num2 > num3 : print (num3) elif num2 < num3 : print(num2)else : print (num1) 저는 이렇게 코드를 작성했는데 영상에서 제시해주신 코드와 제 코드 중 어떤 게 더 효율적이라고 볼 수 있을까요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
word wrap 체크 후에도 콘솔 한줄로 출력되는현상
vscode와 주피터 노트북 설치 후 word wrap체크까지 했는데도 콘솔에 한줄로 나오는데 왜이러는건가요 노트북은 맥북프로이고 파이썬 버전은 3.13.1이고 주피터 노트북은 vscode의 extention으로 설치되었습니다
-
미해결남박사의 파이썬으로 봇 만들기 with ChatGPT
네이버 지도 api 호출 문제
InlineQuery와 스마트폰 위치 정보를 활요(용)한 주변 맛집 검색 파트에 6분8초에서 네이버 지도를 통해 네트워크에 해당 구간을 가져오는건데 여기서 새 탭에서 열기를 해야 가져올 수 있는데 지금 403 Forbiddennginx으로 못받아서 해당 내용을 못하게 되는데 다른 방법을 이용한 방법이 어떤것인지 정확히 모르겠습니다
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
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 를 통해서, 네이버 로그인이 필요한 제품의 가격을 가져 올수 있을까요? 가져올려는 것은 아래의 가격 정보를 가져올려고 합니다.