묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
RISS 수업 관련 질문입니다.
안녕하세요 스타트코딩님 쉬운 설명으로 틈틈히 그러나 열심히 공부중 입니다.17강 RISS 파라미터 관련 동영상 6분쯤 되는 구글 개발자도구에서 파라미터 복사하는 부분인데요 isDetailSearch : N 가 아니라isDetailSearch N이렇게 되네요혹시 코딩님 처럼 안되는 이유가 설정이 잘못된건지 방법이 따로 있는건지 궁금합니다.
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
예제 2, 4, 6에 대한 풀이 방식 질문.
안녕하십니까. 강의 잘 듣고 있습니다. 다름이 아니라 선생님의 풀이와 제 풀이의 답은 같으나 과정에서 약간의 차이가 있어 질문 드립니다.우선 예제 2번의 경우 저는import requestsfrom bs4 import BeautifulSoupres=requests.get('https://davelee-fun.github.io/')soup=BeautifulSoup(res.content, 'html.parser')items= soup.select_one('h1.sitetitle')print(items.get_text())이러한 풀이 방식을 썼습니다. 의도를 표현해보자면 'Teddy의 선물 블로그' 라는 단일 데이터를 뽑아낼 것이므로 'select'가 아닌 특정 포인트만 뽑아 주는 'select_one'을 사용 했으며, 역시나 단일 데이터를 뽑아낼 것이므로 굳이 반복문인 'for ~ in ~'을 쓰지 않고 'print'만을 사용 했습니다. 이러한 저의 접근 방식이 오류가 없는지 궁금합니다.아래의 풀이는 선생님께서 해주신 풀이 입니다.import requestsfrom bs4 import BeautifulSoupurl = 'https://davelee-fun.github.io/'res = requests.get(url)soup = BeautifulSoup(res.content, 'html.parser')items = soup.select('h1.sitetitle')for item in items: print (item.get_text().strip()) 예제 4번 질문 입니다.4번의 경우 저의 풀이는import requestsfrom bs4 import BeautifulSoupres=requests.get('https://davelee-fun.github.io/')soup=BeautifulSoup(res.content, 'html.parser')items= soup.select('section.featured-posts h4.card-text')for item in items: print(item.get_text().strip())이러한 풀이 방식을 썼습니다. 그 의도는 items= soup.select('section.featured-posts h4.card-text')에서 보면 section 이라는 태그의 .featured-posts 이라는 클래스명 산하의 h4 이라는 태그의 .card-text 클래스명을 가진 것들의 데이터를 추출하고 싶다는 뜻 이였습니다.저는 이것을 'section.featured-posts h4.card-text' 이라는 방식으로 띄워쓰기를 이용하여 한 번에 표현해도 문제 없을 것이라고 판단했으나 선생님의 풀이를 보았을 때import requestsfrom bs4 import BeautifulSoupurl = 'https://davelee-fun.github.io/'res = requests.get(url)soup = BeautifulSoup(res.content, 'html.parser')box = soup.select_one('section.featured-posts')items = box.select('h4.card-text')for item in items: print (item.get_text().strip())라는 방식으로 어떻게 보면 두 번으로 나누어 표현했음을 이해했습니다. 단순 방식의 차이인지 제가 틀리게 표현 했는데 우연히 맞은 것인지 알고 싶습니다. 마지막으로 6번 예제 질문입니다.6번의 경우 저의 풀이는import requestsfrom bs4 import BeautifulSoupres=requests.get('https://davelee-fun.github.io/')soup=BeautifulSoup(res.content, 'html.parser')items= soup.select('div.container.text-center > span')print(items.get_text().strip())이러합니다. 의도를 설명하지면 div 이라는 태그의 .container 와 .text-center 이라는 두 개의 클래스명을 지닌 것 바로 아래의 > span 라는 태그 내의 데이터를 추출하고 싶다는 의미였습니다.이렇게 하면 'Never miss a story from us, subscribe to our newsletter' 라는 내용을 뽑아 낼 수 있을 것으로 보았으며,'Never miss a story from us, subscribe to our newsletter' 라는 단일 데이터를 추출 하는 것이니 'select'를 썼더라도 굳이 반복문인 'for ~ in ~'을 사용하지 않아도 될 것이라고 생각했지만'AttributeError: ResultSet object has no attribute 'get_text'. You're probably treating a list of elements like a single element. Did you call find_all() when you meant to call find()?' 라는 오류가 떴습니다. 그래서items= soup.select('div.container.text-center > span')for item in items: print(item.get_text().strip())또는items= soup.select_one('div.container.text-center > span')print(items.get_text().strip())라고 바꾸어 써보니 제대로 된 답이 출력 되었습니다. 저의 첫 오답의 경우items= soup.select('div.container.text-center > span')print(items.get_text().strip()) 이 구문은 items가 list 형식이며, 그래서 for 반복문을 사용하지 않고는 get_text()를 사용할 수 없다는 ai의 답변을 받았지만 뭔가 알듯 말 듯한 느낌이라 다시 설명을 듣고 싶습니다.그리고 제대로 된 답이 도출 된 위 두 개의 경우의 차이를 알고 싶습니다.긴 글 읽어주셔서 감사합니다. 좋은 하루 보내세요.^^
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버 쇼핑 크롤링에서 셀레니움 접속이 안되네요
예전에는 됐었는데 이젠 막힌 건가요?봇탐지 기술 이것저것 써봐도 잘 안되네요.
-
해결됨남박사의 파이썬으로 봇 만들기 with ChatGPT
3강 그대로 따라했는데 코드가 아무 결과도 반납하지 않습니다.
코드를 그대로 따라서 작성하고 실행해보았는데 아무런 반환값이 나오지 않습니다. 구글과 네이버의 페이지 구조가 그동안 (처음 강의 올리신 후) 바뀌어서 그런걸까요?
-
미해결R로 하는 텍스트마이닝 (Top keyword부터 감성분석까지)
tagxedo 사이트 사용관련
크롬 아니고, 인터넷 익스플로러로 'tagxedo 사이트'에 접속해서 silverlight 설치를 했습니다. F5도 눌러보고, 재부팅도 해보고, 프로그램 재설치를 해봤지만 tagxedo 사이트를 이용하지 못하는 상태(siliverlight 설치하라는 화면만 나와요) 입니다.어떻게 해야하나요? 안내부탁드립니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
객체,속성,메서드 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님, 강의하시는 건 그대로 따라하는 건 문제가 안되는데, VBA 하다가 넘어와서 그런지, 이게 속성인지, 메서드인지...변수인지 객체인지 구분이 안가네요 ㅠ사실 이걸 고민하지 않고 이해보다 ! 암기인 것 같은데요...
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
문제 파일
- 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.)- 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 주피터 노트북 문제파일에 정답이 모두 적혀있는데, 문제만 있는 파일은 없나요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
requests 관련 질문
25년 5월 시점에서 하다보니깐, requests 강의를 들을때 클래스 파싱 하는 과정이 작동이 안되서 확인해보니, requests는 javascript 로 만들어진 동적 내용을 긁을 수 없다고 하더라구요.그래서 selenium의 webdriver를 사용했는데, 작동은 되는데 불편한 점이 각 실행시마다 크롬 창이 떠요.혹시 javascript도 requests로 파싱할 수 있는 방법 이 있을까요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
iframe 이 없을때 ~
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 iframe 전환을 해야되는데 강사님 강의에는 iframe 태그가 있는데 제 화면에는 iframe 안보이는데 이건 어떻게 된건가요 ~
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
뉴스 크롤링 페이지 번호가없을때
최근 네이버 뉴스에는 페이지 번호가 없습니다. 더보기로 바뀐것 같은데 어떻게 해야 할까요?
-
미해결12시간 안에 끝내는 파이썬을 활용한 크롤링
궁금증
안녕하세요, 저는 해당 수업을 듣고 잡플래닛에 웹크롤링으로 해보려고 하는데 지금 작업이 되지 않습니다. 혹시 해당 코드를 가르쳐 주실수 있을까요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
선택자에 공란이 있는 경우
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선택자에 공란이 있는 경우 선택자를 어떻게 지정해야 하나요..
-
해결됨파이썬으로 나만의 블로그 자동화 프로그램 만들기
HTTP Error 401: Unauthorized
수업 내용 중 궁금하신 사항이나 기타 프로그램 제작에 관한 문의를 올려주시기 바랍니다. 파이썬과 네이버api 연동을 시도하는데 HTTP Error 401: Unauthorized 애러가 뜨는데 혹시 어떻게 해야 할까요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
ui 파일 py로 변환시
안녕하세요? GUI강의에서 ui파일을 py로 변환시 아래와 같은 오류가 발생하는데요, 경로 설정의 문제일까요? PS C:\startcoding\python_basic\06.GUI개발> pyside6-uic login.ui -o login_ui.py pyside6-uic : 'pyside6-uic' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.위치 줄:1 문자:1+ pyside6-uic login.ui -o login_ui.py+ ~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (pyside6-uic:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
-
해결됨챗 GPT를 활용한 파이썬 프로그래밍
설치파일은 어디서 받을 수 있나요?
강의중에 설치파일을 주셨다고 했는데어디서 찾는지 모르겠네요 ㅜ
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
수업내용 프로젝트의 완성된 코드는 제공이 안돼나요?
학습은 예전에 마쳤습니다. 내용 꽉꽉 채워진 훌륭한 강의 감사합니다.그런데, 수업내용 프로젝트의 완성된 코드는 제공이 안되는지 궁금합니다. 압축파일로 제공된다던지 github 리파지토리를 통해 제공이 된다던지...이 곳에서 답변이 어렵다면 jinwelcome1015@gmail.com 메일로라도 답변 부탁드립니다. 이상입니다. 감사합니다~
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버쇼핑(닭가슴살) 심화 - 구매건수 추출
안녕하세요~ 네이버쇼핑(닭가슴살) 과제 심화로 구매건수를 추출하고 있는데,강의에서는 구매건수만 별도로 추출하는 것으로 나와서한번 상품명,링크,가격,구매건수를 같이 추출해보려고 하고 있거든요. 이렇게 짜니, 자꾸 모든 상품의 구매건수가 똑같은 숫자로 나오는데,원인이 무엇일까요? products = soup.select(".product_item__KQayS") # 상품명, 상세페이지링크, 가격, 구매건수수 추출하기 for product in products: # 상품명 name = product.select_one(".product_title__ljFM_").text # 상세페이지 링크 link = product.select_one(".product_title__ljFM_>a").attrs['href'] # 가격 price = product.select_one(".price_num__Y66T7").text.split('원')[0].replace(',','') # 구매건수 if soup.select_one("[data-shp-area*=purchase] em"): bought = soup.select_one("[data-shp-area*=purchase] em").text.replace(',','') if '만' in bought: bought = int(float(bought.split('만')[0])*10000) else : bought = '' print(name, link, price, bought) data.append([name, link, price, bought])
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
폴더목록
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요, GUI 완성 부분 수강 중인데 파일 목록이 정적페이지 크롤링 부분이 뜨게 하려면 어떻게 해야 하나요
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
데이터 추출하기 - not 선택자 활용
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 그대로 했는데 제 선택자는 선택이 되지 않네요. 어디를 고쳐야 하나요
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버쇼핑(닭가슴살) 코드 문의드립니다.
안녕하세요~ 닭가슴살 과제 해보던 중 첫번째 상품만 출력되어 문의드립니다. 돌려보면 대부분 첫번째 상품만 출력되지만, 어쩔 땐 애매하게 10개정도 출력이 될때도 있고, 좀 복불복이더라구요.. 무엇이 문제일까요?ㅠㅠ from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup import time import pandas as pd data = [] #크롬 드라이버 생성 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") html = driver.page_source soup = BeautifulSoup(html, 'html.parser')#스크롤 전 높이 last_height = driver.execute_script("return document.body.scrollHeight") while True: #스크롤 끝까지 내리기 driver.execute_script("window.scrollTo(0,document.body.scrollHeight)") #잠시 대기해줘야, 한번만 작동하지 않고 무한반복함 time.sleep(2) #스크롤 후 높이 new_height = driver.execute_script("return document.body.scrollHeight") #비교 (if, break문) if new_height == last_height : break #스크롤 전 높이 업데이트 last_height = new_heightproducts = soup.select(".product_item__KQayS") for product in products: # 상품명 name = product.select_one(".product_title__ljFM_").text # 상세페이지 링크 link = product.select_one(".product_title__ljFM_>a").attrs['href'] # 가격 price = product.select_one(".price_num__Y66T7").text.split('원')[0].replace(',','') print(name, link, price) data.append([name, link, price])