묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
Claude 3 는 안되는 건가요?
아직 강의가 chat gpt 이용하는 것 까지 강의가 몇 개 남아있습니다만, 현재 Claude 3 를 결제하고 프로로 사용 중인데 주변 서적이나 강의 등을 보면 Chat GPT 를 이용한 내용만 있던데 Claude 3 로는 할 수 없는 걸까요? Chat GPT 로 갈아타야하는 걸까요...?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
lst = lst50 + lst100 이거 대신에
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/125.0.0.0 Safari/537.36" } url = "https://www.melon.com/chart/index.htm" req = requests.get(url, headers=headers) html = req.text soup = BeautifulSoup(html, "html.parser") lst50 = soup.select(".lst50") lst100 = soup.select(".lst100") # lst = lst50 + lst100 if lst50: lst = lst50 elif lst100: lst = lst100 else: print("!!!!!!!!!!!!!") # 자식선택자 > 는 바로 밑에 있을 때만 가능. 바로 밑에 있는게 아닐 때는 그냥 한칸 띄고 입력! for i in lst: title = i.select_one(".ellipsis.rank01 a") singer = i.select_one(".ellipsis.rank02 > a") album = i.select_one(".ellipsis.rank03 > a") print(title.text) print(singer.text) print(album.text) print() # for rank, i in enumerate(lst50, 1): # title = i.select_one(".ellipsis.rank01 a") # print(f"{rank} : {title.text}") # print() print(len(lst)) lst = lst50 + lst100 대신에 앞 시간에 설명해주셨던 if, elif, else 를 사용해봤는데 데이터가 50개만 나오는데, 왜 100개가 다 안나오는 건가요? 무슨 차이가 있는건지 궁금합니다.
-
해결됨[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
동적 페이지 이동 크롤링 방법 문의
안녕하세요, 상세 페이지 내용 크롤링에서 막혀 있다가 이번에 올려주신 리뉴얼 강의 덕분에 해결했습니다.그런데 페이지 이동에서 다시 막혔습니다.아래는 제가 만든 코드입니다. 첫번째 페이지는 잘됩니다.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 bs4 import BeautifulSoup import time import requests from webdriver_manager.chrome import ChromeDriverManager chrome_options = Options() chrome_options.add_experimental_option("detach", True) service = Service(executable_path=ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=chrome_options) driver.implicitly_wait(5) driver.maximize_window() driver.get("https://www.dbpia.co.kr/search/topSearch?searchOption=all&query=%EA%B0%80%EC%A7%9C%EB%89%B4%EC%8A%A4") html = driver.page_source soup = BeautifulSoup(html, 'html.parser') articles = soup.select("article.thesisWrap") for article in articles: title = article.select_one("h2.thesis__tit").text info = article.select_one(".thesisAdditionalInfo").text link = 'https://www.dbpia.co.kr' + article.select_one(".thesis__summary > a").attrs['href'] response = requests.get(link, headers={'User-Agent':'Mozilla/5.0'}) html = response.text soup = BeautifulSoup(html, 'html.parser') try: abstract = soup.select_one("div.abstractTxt").text except: " " print(title,info,abstract) 수업에서는 1페이지, 2페이지.... 이렇게 바뀔 때 url이 바뀌는 경우를 알려주셨는데제가 크롤링하려는 페이지는 매우 고약하게도...url이 바뀌지 않습니다.첫페이지 다음의 두번째 페이지부터 계속 url에 '#a'만 붙습니다. 이런 경우 1페이지 다음 2페이지, 3페이지 등 다음 페이지 내용을 크롤링할 수 있는 방법이 있을까요? 해당 사이트 url입니다.https://www.dbpia.co.kr/search/topSearch?searchOption=all&query=%EA%B0%80%EC%A7%9C%EB%89%B4%EC%8A%A4#a 1.<전체 화면> <확대 화면: URL> <확대 화면 : F12 - 소스코드> driver.find_element(By.CSS_SELECTOR, ".dpPaging__link:nth-of-type(1) ").click()이렇게 페이지에 따라 CSS 선택자를 만들고 숫자만 바꿔서 하려고 했는데for문을 적용할 수가 없네요.... 실전편에서 동적 페이지 크롤링 강의 오픈 예정이던데 이런 내용도 다뤄주시면 감사하겠습니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
강의 수강 순서 문의드려요.
유료 강의 첫 수업을 들으려는데 강의가 업데이트가 되었네요? 감사합니다. ^^강의 순서는 1부터 들으면 될까요? 과정 리스트를 보니 설치와 기본은 뒤쪽에 있어서 문의드려요.
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
크롤링 데이터를 웹으로 보여주고 싶습니다.
안녕하세요?? 강의를 엄청 잘 듣고 있는 수강생입니다.다른게 아니라 크롤링한 json 데이터를 웹(스프링이나 스프링부트)에서 화면에 표현하고 싶은데 어떻게 하면 되나요??
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
증권, 메일 등 서비스 목록을 못가져와요 ㅠㅠ
네이버 메인 화면에서 증권, 메일 등 서비스 목록을 못가져와요 ㅠㅠ클래스를 여러가지로 바꿔도 아래와 같이 none로 안나오는데 도움주시면 감사하겠습니다. import requests from bs4 import BeautifulSoup url = "https://www.naver.com" print(url) headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" } req = requests.get(url, headers=headers) html = req.text soup = BeautifulSoup(html, "html.parser") print(soup.title) # 아래 3개 모두 h1 태크 하나를 가져오는 똑같은 결과가 나온다. 즉 방법이 여러가는 라는 말이다. #방법1 print(soup.h1) #방법2 h1 = soup.find('h1') print(h1) #방법3 h1 = soup.select_one('h1') print(h1) # find로 찾을 때 id는 id = 으로 넣고, class는 class_ 이렇게 언더바 넣어야 함 # class에 언더바를 넣는 이유는 class가 파이썬에 예약어로 등록되어 있기 때문이다. h1 = soup.find(class_="search_logo") print(h1) h1 = soup.find(id="special-input-logo") print(h1) service_name = soup.find(class_="service_name", string="증권") print(service_name) shortcut_item = soup.find(class_="shortcut_item", string="증권") print(shortcut_item) link_service = soup.find(class_="link_service", string="증권") print(link_service) shortcut_list = soup.find(class_="shortcut_list") print(shortcut_list) """출력값 https://www.naver.com <title>NAVER</title> <h1 class="search_logo" id="special-input-logo"></h1> <h1 class="search_logo" id="special-input-logo"></h1> <h1 class="search_logo" id="special-input-logo"></h1> <h1 class="search_logo" id="special-input-logo"></h1> <h1 class="search_logo" id="special-input-logo"></h1> None None None None"""
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
네이버에 view탭이 업데이트가 됐는지 없어졌네요... ㅠㅠ
네이버에 view탭이 업데이트가 됐는지 없어졌네요... ㅠㅠ뉴스 기사나 인플루언서로 따라가고 있기는 한데 강의 업데이트는 불가능하겠죠?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
실행오류
실행버튼이 없었던것은 찾아보니 확장프로그램 미설치 문제인것 같아 설치했더니 생성되어서 이부분은 해결이 되었는데요...명령어 함수가 제대로 작동을 안하는것 같아요 강의설명대로 똑같이 입력했는데 저는 색깔도 안바뀌고 실행버튼 누르면 밑에 저렇게 뜨네요;;뭐가 문제일까요..ㅠㅠ
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
네이버쇼핑 무한스크롤 안되시는분들 모바일네이버로 실습해보세요
driver = webdriver.Chrome(service=service,options=chrome_options)driver.implicitly_wait(30)driver.get('https://m.naver.com')before_h = driver.execute_script('return window.scrollY')while True: driver.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END) time.sleep(1) after_h = driver.execute_script('return window.scrollY') print (after_h) if after_h == before_h: break before_h = after_h 네이버 쇼핑에서 무한스크롤 막힌건지 안되네요m.naver.com에서는 정상작동합니다우리 코드가 문제있는건 아닌것같으니 걱정말아요!
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
'str' object is not callable
안녕하세요 수업 듣는중 문제 푸는 21번 강의에서 'str' object is not callable 나와서 알려주신대로 코드를 작성했다가, 안되서 강의자료 복사에서 실행해도 error 납니다. 이런 경우에는 왜 이런 버그가 나오나요? 문제를 풀다가 1번도 아니고 여러 문제들이 계속 같은 문구가 나와서 이렇게 문의드립니다. 답변 주시면 감사하겠습니다 수업 21번 - 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)
강의자료 어디서볼까요?
강의자료 어디서 볼까요?강의자료소스자료(github 등)수강내용중에 참고 사이트 등 정보는 댓글로 남겨둔다고 하셨는데 그 댓글들은 어디서 확인할 수 있을까요?확인 부탁드립니다.감사합니다.
-
미해결네이버 카페 DB 추출 프로그램 개발 강의 [selenium]
계정 정보 찾을수가 없어요
로직이 바뀐거 같아서 질문 드립니다 .영상처럼 위에 링크가 떠야되는데 아예 안뜨고<script type="text/javascript">wordBreak($("article_0103378_0"));</script>이런 걸 도저히 찾지 못하겠습니다. 블로그보기로 들어가서 계정아이디 확인하고 개발자도구에서 ctrl+ f 한다음 붙여놔도 아예 안뜨네요중고나라 카페 로직이 바꼈는지 한번 봐주시면 감사하겠습니다
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
연습 4번에서 featured 를 가져오는 방법
영상과 답안지를 보면 featured 를 가져오기 위해서 featured = soup.select_one('section.featured-post') 를 추가하는 작업이 있는데요...import requestsfrom bs4 import BeautifulSoupurl = 'https://davelee-fun.github.io/'res = requests.get(url)soup = BeautifulSoup(res.content, 'html.parser')items = soup.select('section.featured-posts h4.card-text')for item in items: print (item.get_text().strip())이렇게 하는 방법으로도 동일한 결과값이 나오긴 하는 데 이렇게 하는 방법에 추후 문제나 단점이 있을까요??
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
ConnectionError
import requestsclient_id = '*********'client_pwd = '********'naver_open_api = 'https://openapi.naver.com/v1/search/shop/query=아이스크림'headers_parms = {'X-Naver-Client-Id':client_id, 'X-Naver-Client-Secret':client_pwd}res = requests.get(naver_open_api, headers = headers_parms)print(res.json()) 해당 코드에서 오류가 나는 이유를 모르겠습니다,,
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
쥬피터 노트북 사용 방법
어떻게 실행하는지 모르겟어요.jupyternotebook.ipynb 을 open으로 누르면 Token authentication is enabledIf no password has been configured, you need to open the server with its login token in the URL, or paste it above. This requirement will be lifted if you enable a password. 위와 같은 페이지가 뜨는데요 어떻게 해야하나요?
-
해결됨[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
강의 크롤링 엑셀 파일로 저장하는 것까지 추가해 봤습니다.
## 엑셀 시트 연습겸 추가했습니다. ## 좋은 강의 감사합니다. import re from bs4 import BeautifulSoup import requests import openpyxl res = requests.get('https://davelee-fun.github.io/blog/crawling_stock_example.html') soup = BeautifulSoup(res.content, 'html.parser') items = soup.select('li.row_sty') excel_file = openpyxl.Workbook() excel_sheet = excel_file.active excel_sheet.title = 'Sheet1' excel_sheet.append(['회사명','주식 가격','변동율']) for i in items: a = i.select_one('div.st_name').get_text().replace(" ","").replace('\n','') b = i.select_one('div.st_price').get_text().replace('\n','').replace(" ","") c = i.select_one('div.st_rate').get_text().replace('\n','').replace(" ","") excel_sheet.append([a,b,c]) excel_file.save('stock.xlsx') excel_file.close()
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
선생님이랑 똑같이 적었는데 저는 왜 오류가 날까요?ㅠ
안녕하세요! 차근차근 잘 보고 있습니다.선생님이랑 똑같이 따라하고 있는데 저는 자꾸 에러가 나서요ㅠㅠ".logo_naver"가 없어진거 같아서 다른걸 붙여서 했는데도 오류가 나는데 뭐가 잘못된 걸까요ㅠㅠㅠㅠ답변이 선생님이랑은 다르게 이렇게 나와서요ㅠㅠ똑같이 따라하는데 뭐가 잘못된 건지 모르겠어요ㅠㅠ
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
뉴스기사 크롤링 css선택자 선정의 어려움......도와주세요....
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요!쌤 인프런, 유튜브 강의 보면서 잘 만들어 가고 있었는데현재 코드에서 아무리 수정을 해도 css를 잘못 가져오는건지 오류가 생겨서 답답해서 질문 들고 왔습니다현재 css 코드 찾기 좀 부탁드릴게요ㅠㅠ안되는 항목✔연예뉴스 -> 내용을 못 가져옴✔스포츠뉴스 -> 제목, 날짜, 내용 다 못 가져옴css를 여러개 바꿔서 넣어봐도 저는 자꾸 찾을 수 없다고 크롤링 됩니다 도와주세요,,,,,,,#네이버기사 크롤링 엑셀저장 import requests from bs4 import BeautifulSoup import time import pyautogui from openpyxl import Workbook #사용자입력 keyword = pyautogui.prompt("검색어를 입력하세요") lastpage = int(pyautogui.prompt("몇 페이지까지 크롤링 할까요?")) #엑셀 생성 wb = Workbook() #엑셀시트 생성 ws = wb.create_sheet(keyword) #열 너비 조절 ws.column_dimensions['A'].width = 60 ws.column_dimensions['B'].width = 30 ws.column_dimensions['C'].width = 60 ws.column_dimensions['D'].width = 150 #행 번호 row = 1 #페이지 번호 pageNum = 1 for i in range(1, lastpage*10, 10) : print(f"{pageNum}페이지 크롤링중입니다 =================") response = requests.get(f"https://search.naver.com/search.naver?where=news&query={keyword}&sm=tab_opt&sort=1&photo=0&field=0&pd=3&ds=2024.04.11&de=2024.15.20&news&query={keyword}&start={i}") html = response.text soup = BeautifulSoup(html, 'html.parser') articles = soup.select("div.info_group") #뉴스기사 div 10개 추출 for article in articles: links = article.select("a.info") #리스트 time.sleep(0.7) if len(links) >= 2: #링크가 2개 이상이면 url = links[1].attrs['href'] #두번째 링크의 href를 추출 response = requests.get(url, headers={'User-agent': 'Mozilla/5.0'}) html = response.text soup_sub = BeautifulSoup(html, 'html.parser') content = soup_sub.select_one("#newsct_article") if content: content_text = content.get_text(separator="\n") else: content_text = "내용을 찾을 수 없습니다." title = None date = None #만약 연예 뉴스라면 if "entertain" in response.url: title = soup_sub.select_one(".end_tit") date = soup_sub.select_one("div.article_info > span > em") content = soup.select_one("#articeBody") #만약 스포츠 뉴스라면 elif "sports" in response.url: title = soup_sub.select_one(".Main_article_title") content = soup.select_one("._article_content") else: title = soup_sub.select_one(".media_end_head_headline") date = soup_sub.select_one("span.media_end_head_info_datestamp_time._ARTICLE_DATE_TIME") #본문 내용안에 불필요한 div, p제거 divs = content.select("div") for div in divs: div.decompose() paragraphs = content.select("p") for p in paragraphs: p.decompose() print("=======제목======= \n", title.text.strip() if title else "제목을 찾을 수 없습니다.") print("=======날짜======= \n", date.text if date else "날짜를 찾을 수 없습니다.") print("=======URL======= \n", url) print("=======내용======= \n", content.text.strip() if content else "내용을 찾을 수 없습니다") # 'else' 블록에서 'date' 변수 정의는 여기서 끝나도록 수정 ws['A1'] = '제목' ws['B1'] = '날짜' ws['C1'] = 'URL' ws['D1'] = '내용' ws[f'A{row}'] = title.text.strip() if title else "제목을 찾을 수 없습니다." ws[f'B{row}'] = date.text.strip() if date else "날짜를 찾을 수 없습니다." ws[f'C{row}'] = url ws[f'D{row}'] = content_text.strip() if content else "내용을 찾을 수 없습니다." row=row+1 #마지막 페이지 여부 확인하기 next_button = soup.select_one("a.btn_next") if next_button: isLastPage = next_button.attrs.get('aria-disabled', None) if isLastPage == 'true': print("마지막 페이지 입니다.") break pageNum = pageNum+1 wb.save(f"{keyword}_4월_뉴스기사_크롤링(4)_내용까지_0411~0415(3).xlsx")
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
imagefont 함수 사용
font = ImageFont.truetype("malgun.ttf", 17)text_w, text_h = font.getsize(text) 상기 코드에서 getsize함수가 오류가 납니다. 찾아보니 Pillow라이브러리가 버전업이 되면서 없어졌다고 하는 것 같습니다. 대체하는 함수가 따로 있을까요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
뉴스 페이지에 페이지 번호가 없는데 어떻게 가져오나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.네이버 뉴스 페이지를 보니 페이지 번호가 없고 스크롤하면 다음 뉴스가 계속해서 나오는 것 같은데 어떻게 가져오나요?