무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결이것이 진짜 크롤링이다 - 기본편
pyautogui 설치시 오류가 뜨네요
제가 프롬프트 창에서 pip install pyautogui 를 입력해서실행을 시켰는데 '파일에 바이러스 또는 기타 사용자 동의 없이 실치된 소프트웨어가 있기 때문에 작업이 완료되지 않았습니다'라는 오류메시지가 뜨면서 설치가 안되네요. 왜그런지 알려주세요 오류 이미지도 같이 올릴게요
- 미해결이것이 진짜 크롤링이다 - 기본편
브라우저가 꺼지는데 어느부분이 문제일까요??
브라우저가 꺼지는데 어느부분이 문제일까요?? from selenium import webdriver from selenium.webdriver.chrome.service import Service from 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) #웹페이지 해당 주소 이동 driver.get("https://www.naver.com")
- 미해결이것이 진짜 크롤링이다 - 기본편
Chapter03에서 Beautifulsoup에서 원하는 결과가 안나오네요
Chapter03에서 Beautifulsoup라이브러리를 실습을 해보는데 결과가 <div class="talk_area" id="topTalkArea"></div>이렇게 div 밖에 안나오는데 뭔가 잘 못된건가요? 물론 id를 사지고 해봤네요..word = soup.select_one('#topTalkArea') 라고 했는데 <div class="talk_area" id="topTalkArea"></div> 이렇게밖에 안나왔네요...
- 미해결이것이 진짜 크롤링이다 - 기본편
1페이지만 가져와집니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 두 코드 모두 1페이지만 불러와집니다ㅠㅠ어디가 잘못된걸까요 1페이지입니다.================== "암 걸리면 서울로"…5년간 100만명 방문 http://www.wowtv.co.kr/NewsCenter/News/Read?articleId=A202310050023&t=NN 두경부암 환자 괴롭히는 ‘구강점막염’ 새 치료법은 http://www.fnnews.com/news/202310040921133037 조기 유방암 환자, 유전자 재발 예측 점수 낮더라도 방심은 금물 http://www.edaily.co.kr/news/newspath.asp?newsid=01715446635770296 ‘이곳’ 사는 여성, 비만 관련 암 위험 낮아 https://health.chosun.com/site/data/html_dir/2023/10/05/2023100502500.html GC셀, 고형암 표적 CAR-NK세포치료제 다국가 1상 진행 http://www.medisobizanews.com/news/articleView.html?idxno=110729 인천 학교 급식실 노동자 폐암 발병 지속…"지원책은 미비" https://www.yna.co.kr/view/AKR20231005074500065?input=1195m 제주 암 환자 3만여 명, 5년간 '서울 원정 치료' http://www.jibs.co.kr/news/articles/articlesDetail/34499?feed=na 암 백신 청신호까지 켰다… 커리코 ‘30년 집념’ https://www.seoul.co.kr/news/newsView.php?id=20231004006003&wlog_tag3=naver 젠큐릭스, 갑상선암 동반진단 UAE 승인 …폐암 이어 두 번째 https://www.hankyung.com/article/202310057966i [약손+] 폐암의 진단과 치료 ⑩폐암의 유전과 가족력 https://dgmbc.com/article/fwzGgK5QFfpv 2페이지입니다.================== "암 걸리면 서울로"…5년간 100만명 방문 http://www.wowtv.co.kr/NewsCenter/News/Read?articleId=A202310050023&t=NN 두경부암 환자 괴롭히는 ‘구강점막염’ 새 치료법은 http://www.fnnews.com/news/202310040921133037 조기 유방암 환자, 유전자 재발 예측 점수 낮더라도 방심은 금물 http://www.edaily.co.kr/news/newspath.asp?newsid=01715446635770296 ‘이곳’ 사는 여성, 비만 관련 암 위험 낮아 https://health.chosun.com/site/data/html_dir/2023/10/05/2023100502500.html GC셀, 고형암 표적 CAR-NK세포치료제 다국가 1상 진행 http://www.medisobizanews.com/news/articleView.html?idxno=110729 인천 학교 급식실 노동자 폐암 발병 지속…"지원책은 미비" https://www.yna.co.kr/view/AKR20231005074500065?input=1195m 제주 암 환자 3만여 명, 5년간 '서울 원정 치료' http://www.jibs.co.kr/news/articles/articlesDetail/34499?feed=na 암 백신 청신호까지 켰다… 커리코 ‘30년 집념’ https://www.seoul.co.kr/news/newsView.php?id=20231004006003&wlog_tag3=naver 젠큐릭스, 갑상선암 동반진단 UAE 승인 …폐암 이어 두 번째 https://www.hankyung.com/article/202310057966i [약손+] 폐암의 진단과 치료 ⑩폐암의 유전과 가족력 https://dgmbc.com/article/fwzGgK5QFfpv 3페이지입니다.================== "암 걸리면 서울로"…5년간 100만명 방문 http://www.wowtv.co.kr/NewsCenter/News/Read?articleId=A202310050023&t=NN 두경부암 환자 괴롭히는 ‘구강점막염’ 새 치료법은 http://www.fnnews.com/news/202310040921133037 조기 유방암 환자, 유전자 재발 예측 점수 낮더라도 방심은 금물 http://www.edaily.co.kr/news/newspath.asp?newsid=01715446635770296 ‘이곳’ 사는 여성, 비만 관련 암 위험 낮아 https://health.chosun.com/site/data/html_dir/2023/10/05/2023100502500.html GC셀, 고형암 표적 CAR-NK세포치료제 다국가 1상 진행 http://www.medisobizanews.com/news/articleView.html?idxno=110729 인천 학교 급식실 노동자 폐암 발병 지속…"지원책은 미비" https://www.yna.co.kr/view/AKR20231005074500065?input=1195m 제주 암 환자 3만여 명, 5년간 '서울 원정 치료' http://www.jibs.co.kr/news/articles/articlesDetail/34499?feed=na 암 백신 청신호까지 켰다… 커리코 ‘30년 집념’ https://www.seoul.co.kr/news/newsView.php?id=20231004006003&wlog_tag3=naver 젠큐릭스, 갑상선암 동반진단 UAE 승인 …폐암 이어 두 번째 https://www.hankyung.com/article/202310057966i [약손+] 폐암의 진단과 치료 ⑩폐암의 유전과 가족력 https://dgmbc.com/article/fwzGgK5QFfpv import requests from bs4 import BeautifulSoup import pyautogui keyword = pyautogui.prompt("검색어를 입력하세요>>>") pageNum = 1 for i in range(1,30,10):#페이지넘기기 print(f"{pageNum}페이지입니다.==================")#페이지안내 response = requests.get(f"https://search.naver.com/search.naver?where=news&sm=tab_jum&query={keyword}&start{i}") #start숫자가페이지 html = response.text soup = BeautifulSoup(html, 'html.parser') links = soup.select(".news_tit") #결과는 리스트로 for link in links: title = link.text #태그 안에 텍스트요소를 가져온다 url = link.attrs['href'] #href의 속성값을 가져온다 print(title, url) pageNum = pageNum+1import requests from bs4 import BeautifulSoup import pyautogui keyword = pyautogui.prompt("검색어를 입력하세요>>>") lastpage = pyautogui.prompt("마지막 페이지번호를 입력해 주세요") pageNum = 1 for i in range(1,int(lastpage)*10,10): print(f"{pageNum}페이지입니다.==================") response = requests.get(f"https://search.naver.com/search.naver?where=news&sm=tab_jum&query={keyword}&start{i}") html = response.text soup = BeautifulSoup(html, 'html.parser') links = soup.select(".news_tit") #결과는 리스트로 for link in links: title = link.text #태그 안에 텍스트요소를 가져온다 url = link.attrs['href'] #href의 속성값을 가져온다 print(title, url) pageNum = pageNum + 1
- 미해결이것이 진짜 크롤링이다 - 기본편
네이버 자동로그인
안녕하세요 네이버 자동로그인을 실행하면로그인 창이 떠요.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 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.implicitly_wait(5) driver.maximize_window() driver.get('https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/') # 아이디 입력 창 driver.find_element(By.CSS_SELECTOR,'#id') id.click() id.send_keys('sand12') # 비밃번호 입력 창 pw = driver.find_element(By.CSS_SELECTOR,'#pw') pw.click() pw.send_keys('yiiit!@') # 로그인 버튼 login_btn = driver.find_element(By.CSS_SELECTOR,'#log\.login') login_btn.click()
- 미해결이것이 진짜 크롤링이다 - 기본편
네이버 자동 로그인
안녕하세요 네이버 자동로그인 실행하면 네이버 로그인창이 떠요
- 미해결이것이 진짜 크롤링이다 - 기본편
vscode terminal 설정
안녕하세요 vscode terminal에서 cmd로 설정하면 한 번은cmd로 실행되고 두번 째 는 cmd 아래 python으로 실행됩니다여러가지로 cmd를 설정해도 마찬가지입니다답변 부탁드리면서 안녕히 계세요
- 미해결이것이 진짜 크롤링이다 - 기본편
뉴스의 제목이 하나 만 출력됩니다
안녕하세요. 뉴스의 제목과 링크를 가져오기 강의에서제목이 여러개 인데 하나 만 출력되네요import requests from bs4 import BeautifulSoup response = requests.get('https://search.naver.com/search.naver?where=news&sm=tab_jum&query=%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90') html = response.text soup = BeautifulSoup(html,'html.parser') links = soup.select('.news_tit') for link in links: title = link.text url = link.attrs['href'] print(title,url)
- 미해결이것이 진짜 크롤링이다 - 기본편
스타트코딩님 코드 질문
스타트코딩님이 댓글에 올려주신 코드 중에새창을 바라보게 만들기라는 부분이 있는데이 코드가 없으면 정상적으로 작동되지 않더라구요.쇼핑 탭을 눌러서 새로운 탭이 생긴 것은 맞는데 원래 쇼핑 탭을 눌러서 새로운 탭이 생겼으면 새로운 탭을 바라보는 거 아닌가요?
- 미해결이것이 진짜 크롤링이다 - 기본편
네이버맵 크롤링 오류
안녕하세요 덕분에 크롤링 강의를 공부할 수 있었고 그 후 네이버맵 식당관련정보를 크롤링하려고 하는데 문제가 생겨 고생고생하다가 질문글을 남깁니다!데이터가 많아 구글링을 통해 멀티프로세싱으로 여러창을 띄워서 크롤링을 할 수 있었는데요if __name__ == "__main__": start_time = time.time() num_cores = 6 pool = multiprocessing.Pool(num_cores) # 검색어 배열 keywords = ['서울숲 식당', '건대 식당', '성수 식당', '홍대 식당', '신촌 식당', '이대 식당', '상수 식당', '합정 식당', '한남 식당', '명동 식당'] pool.map(get_data,keywords) pool.close() pool.join() # print(" ----------------------------------------- ") # print(" 실행 소요 시간 : 단위(초) ") # print(" ----------------------------------------- ") # print(time.time() - start_time) # print(" ----------------------------------------- ") conn.close()이런식으로 메인함수를 작성하고 get_data함수는 def get_data(keyword): browser = webdriver.Chrome() table_nm = "" type = '' URL = 'https://map.naver.com/v5/search/' + keyword print(URL) browser.get(URL) browser.implicitly_wait(10) browser.maximize_window() # iframe(searchIframe) 전환 switch_frame("searchIframe",browser) # iframe 안쪽을 한번 클릭하기 browser.find_element(By.CSS_SELECTOR,"#_pcmap_list_scroll_container").click()키워드를 받아 해당위치 식당을 검색하고 그 후 크롤링을 이어나가는 상황입니다.그런데 여러창이 띄워져서 처음에 https://map.naver.com/v5/search/홍대 식당이런식으로 들어가면 자동화된 크롬창에서 정보들이 뜨지 않는 문제를 겪고 있습니다 구글링해봐도 저와같은 문제상황을 찾지 못했습니다 도와주시면 정말 감사하겠습니다!!
- 미해결이것이 진짜 크롤링이다 - 기본편
[WinError 5] 액세스가 거부되었습니다:
코드도 동일하게 입력했고 관리자 권환으로 프로그램을 실행했는 데도 모든 사이트에서 전부 액세스가 거부되었다고 뜨고 더이상의 진행이 안 돼요.구글링을 하며 이것저것 따라해봤는데도 문제 해결이 안 되네요..ㅠㅠ 도대체 뭐 때문일까요?
- 해결됨이것이 진짜 크롤링이다 - 기본편
페이지 반복문 오류
아래와 같이 1페이지까지는 제대로 출력이 되나 2페이지 이후로는 뉴스 제목과 링크가 가져와지지 않아요.왜 이런 오류가 발생하는 건가요.??
- 미해결이것이 진짜 크롤링이다 - 기본편
NoneType Error
F5번 실행시 터미널에 아래와 같은 에러가 뜹니다..클래스명 앞에 '.'을 붙이고 시도해도 같은 에러가 납니다 선생님 ㅠㅠAttributeError: 'NoneType' object has no attribute 'text' + print(word.text)에서 text 타입을 지우고print(word) 입력시 타입에러는 더이상 뜨지 않지만 값이 None으로 찍힙니다..ㅜㅜ ++ 광역시 홈페이지를 크롤링 해본 결과 광역시 홈페이지의 a 태그 안에 span 태그의 텍스트는값이 잘 나옵니다.네이버 구조가 값을 못받아오게 처리되어서크롤링이 안되는 걸까요? 파이썬 3.11.~ 버전입니다.
- 미해결이것이 진짜 크롤링이다 - 기본편
10페이지 이후로는 출력이 안됩니다
for i range() 를 사용하여 여러 페이지를 출력할 때9페이지까지는 문제 없이 출력 되는데 10페이지 이후로는 print(f"{pageNum}페이지입니다.===")는 정상 출력 되지만 페이지 내용은 못 가져옵니다for range 를 거치지 않고 따로 101이나 111처럼 특정 페이지의 start 값을 넣었을 땐 출력이 돼서 무엇이 문제인지 모르겠습니다
- 미해결이것이 진짜 크롤링이다 - 기본편
크롬드라이버 업데이트 관련
안녕하세요. 스타트 코딩님,크롬 버전(Version 116.0.5845.96)을 업그레이드 한 이후로 셀레니움을 통해 크롬 드라이버를 자동으로 Install 하지 못하는 상황이 반복되고 있습니다.이 경우에는 어떻게 해야 될까요?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 # 크롬 드라이버 자동 업데이트 from webdriver_manager.chrome import ChromeDriverManager import time import pyautogui import pyperclip # 브라우저 꺼짐 방지 코드 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 불필요한 에러 메세지 없기 chrome_options.add_experimental_option("excludeSwitches", ['enable-logging']) servie = Service(executable_path=ChromeDriverManager().install()) driver = webdriver.Chrome(service=servie, options=chrome_options) driver.get("https://shopping.naver.com/home")
- 미해결이것이 진짜 크롤링이다 - 기본편
2023.08.18 정상 동작하는 코드 공유
현재 정상적으로 동작하는 코드는 아래와 같습니다<02_셀레니움_무한스크롤.py>from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options import time # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 불필요한 에러 메시지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 브라우저 생성 browser = webdriver.Chrome(options=chrome_options) # 웹 사이트 열기 browser.get('https://www.naver.com') # 쇼핑 메뉴 클릭하기 browser.find_element(By.CSS_SELECTOR, ".service_icon.type_shopping").click() time.sleep(2) # 새창을 바라보게 만들기 new_window = browser.window_handles[1] browser.switch_to.window(new_window) # 화면 최대화 해야지 검색창이 보임 browser.maximize_window() # 검색창 클릭 search = browser.find_element(By.CSS_SELECTOR, "input._searchInput_search_text_3CUDs") search.click() # 검색어 입력 search.send_keys("아이폰13") search.send_keys(Keys.ENTER) # 스크롤 전 높이 before_h = browser.execute_script("return window.scrollY") # 무한 스크롤 while True: # 맨 아래로 스크롤 내린다. browser.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END) # 스크롤 사이 페이지 로딩 시간 time.sleep(1) # 스크롤 후 높이 after_h = browser.execute_script("return window.scrollY") if after_h == before_h: break before_h = after_h # 상품 정보 div items = browser.find_elements(By.CSS_SELECTOR, ".product_item__MDtDF") for item in items: name = item.find_element(By.CSS_SELECTOR, ".product_title__Mmw2K").text try: price = item.find_element(By.CSS_SELECTOR, ".price_num__S2p_v").text except: price = "판매중단" link = item.find_element(By.CSS_SELECTOR, ".product_title__Mmw2K > a").get_attribute('href') print(name, price, link) <03_csv파일로저장하기.py>from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options import time import csv # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 불필요한 에러 메시지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 브라우저 생성 browser = webdriver.Chrome(options=chrome_options) # 웹 사이트 열기 browser.get('https://www.naver.com') # 쇼핑 메뉴 클릭하기 browser.find_element(By.CSS_SELECTOR, ".service_icon.type_shopping").click() time.sleep(2) # 새창을 바라보게 만들기 new_window = browser.window_handles[1] browser.switch_to.window(new_window) # 화면 최대화 해야지 검색창이 보임 browser.maximize_window() # 검색창 클릭 search = browser.find_element(By.CSS_SELECTOR, "input._searchInput_search_text_3CUDs") search.click() # 검색어 입력 search.send_keys("아이폰13") search.send_keys(Keys.ENTER) # 스크롤 전 높이 before_h = browser.execute_script("return window.scrollY") # 무한 스크롤 while True: # 맨 아래로 스크롤 내린다. browser.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END) # 스크롤 사이 페이지 로딩 시간 time.sleep(1) # 스크롤 후 높이 after_h = browser.execute_script("return window.scrollY") if after_h == before_h: break before_h = after_h # 파일 생성 f = open(r"C:\source\startcoding\startcoding_crawling\03_네이버_쇼핑_크롤링\data.csv", 'w', encoding='CP949', newline='') csvWriter = csv.writer(f) # 상품 정보 div items = browser.find_elements(By.CSS_SELECTOR, ".product_item__MDtDF") for item in items: name = item.find_element(By.CSS_SELECTOR, ".product_title__Mmw2K").text try: price = item.find_element(By.CSS_SELECTOR, ".price_num__S2p_v").text except: price = "판매중단" link = item.find_element(By.CSS_SELECTOR, ".product_title__Mmw2K > a").get_attribute('href') print(name, price, link) csvWriter.writerow([name, price, link]) f.close()
- 미해결이것이 진짜 크롤링이다 - 기본편
2023.08.18 기준 정상 동작하는 코드 공유
네이버 쇼핑이 예제 중에 가장 많이 업데이트 되네요 ㅎㅎ 강의 리뉴얼하면서 얘는 무조건 빼야되겠습니다. 현재 시점에서 잘 동작하는 코드입니다코드에 대한 설명은 주석으로 달아놓았으니 학습에 참고해 보세요from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options import time # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 불필요한 에러 메시지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 브라우저 생성 browser = webdriver.Chrome(options=chrome_options) # 웹 사이트 열기 browser.get('https://www.naver.com') # 쇼핑 메뉴 클릭하기 browser.find_element(By.CSS_SELECTOR, ".service_icon.type_shopping").click() time.sleep(2) # 새창을 바라보게 만들기 new_window = browser.window_handles[1] browser.switch_to.window(new_window) # 화면 최대화 해야지 검색창이 보임 browser.maximize_window() # 검색창 클릭 search = browser.find_element(By.CSS_SELECTOR, "input._searchInput_search_text_3CUDs") search.click() # 검색어 입력 search.send_keys("아이폰13") search.send_keys(Keys.ENTER)
- 미해결이것이 진짜 크롤링이다 - 기본편
div id 값이 없을 경우 어떻게 찾을 수 있을가요?
항상 많은 도움을 받고 있습니다 너무 감사드립니다. 수업을 따라서 하다가네이버에 [스포츠]버튼을 찾아보려고 했는데 여긴 아이디 값이 없더라구요 소스창에서 복사한 값은 아래와 같습니다. <a href="#" class="ContentHeaderView-module__tab___uYoNi" role="tab" aria-selected="false">스포츠</a> 이런 경우 어떻게 해야하는지 너무 궁금해요
- 해결됨이것이 진짜 크롤링이다 - 기본편
네이버 쇼핑 검색 input type text 클릭 안되는 부분
강의에서는 네이버 -> 쇼핑 버튼 클릭 시 현재 창이 네이버 쇼핑으로 전환되어 예제가 정상 동작하고 있었습니다.현재 시점에서 네이버 -> 쇼핑 버튼 클릭 시 새 탭이 생기면서 문제가 발생하고 있었습니다.https://www.naver.com 이 실행되어있는 첫번째 탭에서 두번째 탭에 있는(네이버 쇼핑) input type text에 해당하는 selector를 검색하고 있으니 어떤 동작도 하지 않는 것으로 보이는 것 같습니다.해당 소스 내에서 활성화된 탭을 마지막 탭으로 이동시키는 소스를 집어넣으면 나머지 뒷 부분이 정상적으로 동작하는 것 같습니다.강의 들으시는 분들은 참고하시면 좋을 것 같습니다.
- 미해결이것이 진짜 크롤링이다 - 기본편
네이버쇼핑 검색창 클릭
크롬 버전 15입니다.네이버 쇼핑 클릭까지는 됩니다. 네이버 쇼핑 접속 후에 쇼핑 검색창 selector을 하고 싶은데 네이버 쇼핑이 많이 바껴 selector이름?이 무엇인지 잘 모르겠어요 ㅠ.. 혹시 현재 네이버 쇼핑의 검색창이 무엇인지 알수 있을 까요?오른쪽 마우스>copy>copy selector 클릭하면#gnb-gnb > div._gnb_header_area_150KE > div > div._gnbLogo_gnb_logo_3eIAf > div > div._gnbSearch_gnb_search_3O1L2 > form > div._gnbSearch_inner_2Zksb > div > input이렇게 나옵니다.