묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨파이썬으로 나만의 블로그 자동화 프로그램 만들기
예제로 알려주시는 파일 어디서 다운받나요?
예제로 알려주시는 파일 어디서 다운받나요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
네이버쇼핑 크롤링 문의
안녕하세요, 금일 "섹션 15. 네이버 쇼핑 크롤링 + 챗GPT(openai API)" 수강 중에 네이버쇼핑 크롤링이 제대로 되지 않아 질문 드립니다. 강의 그대로 BeautifulSoup만을 이용하여 크롤링을 해보니이상하게 제품을 1개밖에 못 가져오는 현상이 있어서Selenium을 이용하여 크롤링 해보았으나 결과는 같았습니다. 개발자 도구 말고 '페이지 소스 보기' 로 확인해 보았더니 첫 번째 제품을 제외하고는 모두 json 형태의 소스로 바뀌어 있었습니다.이런 경우에는 어떻게 크롤링 해야 하나요?답변 부탁드립니다.감사합니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
마지막 페이지 관련
안녕하세요~! 몇가지 궁금증이 있어 문의 드립니다! 네이버 뉴스 기사가 페이지 넘버링이 아닌, 스크롤식으로 변경된 것으로 확인됩니다. 이러한 경우에는 마지막 기를 어떻게 확인할 수 있을까요? (굳이 마지막 페이지를 확인할 이유가 없을 것 같긴 하지만ㅎㅎ 그래도 궁금하네요 ) 2.f'https://search.naver.com/search.naver?ssc=tab.news.all&where=news&sm=tab_jum&query={keyword}&start={i}' 이전 강의에서 확인하였던, &start={i}을 추가하여 네이버 뉴스 기사 결과를 수집해본 결과, 계속해서 수집이 되긴 했습니다.제 생각에는 연관도가 높은순 → 낮은순으로 출력되는 것 같은데 맞는지도 궁금하네용ㅎㅎ
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
input() , print() 와 대화형 AI ( ChatGPT 혹은 Claude)
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 이번 강의에서 말씀해주신 입출력 방식을 연습해보면서input() 과 print() 를 같이 사용하니 뭔가 '대화' 를 하는 느낌이 강하게 듭니다. ChatGPT 나 Claude 같이 대화형 AI 시스템이 해당 기능에서 복잡하게 확장된 영역이라고 이해해도 되는 건가요?비전공자에 컴퓨터 언어, 프로그램의 배경 지식 거의 없이 강의를 듣다 보니 단순한 입출력 기능에서도 많은 것들이 신기하고 궁금하네요 ㅎㅎ
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
공공 데이터 목록 -> 한국환경공단_대기오염정보 이름 변경 문의
오픈 API에 한국환경공단_에어코리아_대기오염정보 은 찾았는데 영상처럼 한국환경공단_대기오염정보는 보이지 않네요..ㅠ시도별 실시간 측정정보 조회도 검색이 안되고 혹시 영상 파일을 공유해 주실 수 있나요? https://www.data.go.kr/data/15073861/openapi.do
-
해결됨파이썬으로 나만의 블로그 자동화 프로그램 만들기
제가 129 버전인데 드리아버에는 128 버전까지밖에 없는데 다운그레이드 해야하나요?
제가 129 버전인데 드리아버에는 128 버전까지밖에 없는데 다운그레이드 해야하나요?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
python-question2-web.ipynb. exercise19 답변을 쓰는데요. 해당 코딩지문이 왜 안되는 지 설명 좀 부탁드려요.
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. python-question2-web.ipynb. exercise19 답변을 쓰는데요. (사용자로부터 주민등록번호를 입력받아 뒷자리 맨 앞의 숫자를 출력하세요.주민등록번호 뒷자리 맨 앞자리는 성별을 나타냄예) 800001-1231231 주민번호를 입력받으면 1을 출력하면 됨1은 남성을 의미, 2는 여성을 의미, 최근 아이들은 3과 4를 사용함)이건 왜 안되는 지 설명 부탁드립니다. data= input("주민번호를 입력하시오") if data.split("-")[1][0] = 1: print("당신은 남성입니다") elif data.split("-")[1][0] = 2: print("당신은 여성입니다") else: print("다시 시도하시오")
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
금융당국 ~ 대출 받는 것이 어려워진다 크롤링 pdf파일 업데이트 부탁 드립니다
import requests from bs4 import BeautifulSoup res = requests.get('http://v.media.daum.net/v/20170615203441266') soup = BeautifulSoup(res.content, 'html.parser') mydata = soup.find('div',attrs={'class':'layer_body','data-translation':'true'}) print(mydata.get_text()) 설명해 주신 것과 같이 크롤링 특성상 자주 형식이 바뀌어 영상 업데이트는 불가능 하다 생각 들지만 수업 자료에 있는 pdf 파일에 그에 맞는 코드는 넣어주셧으면 좋겠습니다!
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
안녕하세요 복습은 어떤식으로 하면 되나요
안녕하세요 복습은 어떤식으로 하면 되나요
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
포스트맨 구성이 달라졌어요
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.포스트맨 구성이 달라져서 블로그 보고 따라해봐서 성공했습니다 업데이트 되어 달라진 것 같아서, 다른 분들도 참고하실 수 있게 강의 내용도 업데이트 되거나 게시판에 업로드 해주시면 좋을 거 같습니다-
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
강사님 html 이 업데이트 되어서 오류가 난거 같습니다..!
안녕하세요 ! 최근 데이터크롤링에 대해 수업을 끊고 공부를 시작한지 얼마 안된 학생입니다 ! 평소 궁금했던 내용들을 배우니 참 재미가 있네요 ..! 다름이 아니라 "뉴스 본문 내용 크롤링하는 법" 강의 들으면서 오류가 자주 나는것을 보니 네이버 html 이 업데이트 된거 같습니다.저 스스로 오류를 해결해보려고 해도 잘 안되어서 답답한 마음에 이렇게 글을 씁니다. import requests from bs4 import BeautifulSoup response = requests.get("https://search.naver.com/search.naver?ssc=tab.news.all&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') articles = soup.select("div.info_group") # 뉴스 기사 div 10개 추출 for article in articles : links = article.select("a.info") # 리스 if len(links) >= 2: # 링크가 2개 이상이면 url = links[1].attrs['href'] # 두번째 링크의 href를 추출 # print(url) response = requests.get(url, headers={'User-agent':'Mozila/5.0'}) html = response.text soup = BeautifulSoup(html, 'html.parser') # print(soup) content = soup.select_one('#articleBodyContents') print(content.text)위 코드를 강사님이 알려주신 코드 입니다. 혹시 뉴스 본문 내용 크롤링하려면 어떻게 해야 될지 알려주실 수 있나요?
-
미해결[Python 실전] 웹크롤링과 데이터분석 : 전세계 축구 선수 몸값 분석
깃허브에서 csv파일 불러오기 오류 문의
import pandas as pd # csv 저장 파일 불러오기 df = pd.read_csv("https://github.com/yak93tiger/dongsuh_files.git/transfermarkt_50.csv") print(df)에러메시지가 아래와 같이 나오네요 마지막 부분에...urllib.error.HTTPError: HTTP Error 404: Not Found 깃허브에 transfermarkt_50.csv 파일을 업로드 한 상태
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
url도 출력하려면 어떻게 해야 하나요
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager from bs4 import BeautifulSoup import requests import time import pyautogui import os import urllib.request import openpyxl # 검색어 입력하기 keyword = pyautogui.prompt("검색어를 입력하세요>>>") # 엑셀 생성 및 시트 추가 wb = openpyxl.Workbook() ws = wb.active ws.title = keyword # 시트의 타이틀을 검색어로 지정합니다. ws.append(['번호', '제목', '조회수', '날짜', 'url주소']) # 데이터 행 추가 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 불필요한 에러 메세지 없애기 chrome_options.add_experimental_option("excludeSwitches",["enable-logging"]) service = Service(executable_path=ChromeDriverManager().install()) url = f"https://www.youtube.com/results?search_query={keyword}" browser = webdriver.Chrome(service=service, options=chrome_options) browser.implicitly_wait(5) # 웹페이지가 로딩 될때까지 5초 기다림 browser.maximize_window() # 화면 최대화 browser.get(url) response = requests.get(url, headers={'User-agent':'Mozila/5.0'}) html = response.text soup = BeautifulSoup(html, 'html.parser') # 7번 스크롤하기 scroll_count = 7 i = 1 while True : # 맨 아래로 스크롤을 내린다. browser.find_element(By.CSS_SELECTOR,"body").send_keys(Keys.END) # 스크롤 사이에 페이지 로딩 시간 time.sleep(2) if i == scroll_count: break i += 1 # Selenium - Beautifulsoup 연동방법 html = browser.page_source soup = BeautifulSoup(html, 'html.parser') infos = soup.select('div.text-wrapper') for i, info in enumerate(infos,1) : # 원하는 정보를 가져오기 # 제목 title = info.select_one("a#video-title").text try: # 조회수 views = info.select_one("div#metadata-line>span:nth-child(3)").text # 날짜 data = info.select_one("div#metadata-line>span:nth-child(4)").text except: views = "조회수 0회" date = "실시간" try : # url주소 target = browser.find_element(By.CSS_SELECTOR,".yt-simple-endpoint.inline-block.style-scope.ytd-thumbnail") url_href = target.get_attribute['href'] except : url_href = "href없음" print(title, views, data, url_href) ws.append([i, title, views, data, url_href]) wb.save(f'07_유튜브_크롤링/{keyword}.xlsx')선생님 url 코드도 뽑아보고 싶어서 해봤는데 리스트 형태로 출력이 되어서 어떻게 하는지 궁금해서 여쭤봅니다 구글링 해 보았는데 제가 잘 못 찾아서 그런지 오류 나거나 리스트 형태로 밖에 출력이 안되네요[]
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
교재
이제 막 강의 들으려고 하는데 교재 같은 건 따로 구입 안해도 되나요 ?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
주소창에 sports가 들어가 있어도 읽어서 출력해요ㅠㅠ
import requests from bs4 import BeautifulSoup import time response = requests.get('https://search.naver.com/search.naver?ssc=tab.news.all&where=news&sm=tab_jum&query=%EC%86%90%ED%9D%A5%EB%AF%BC') 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") # 리스트 if len(links) >= 2 : # 링크가 2개 이상이면 url = links[1].attrs['href'] # 두번째 링크의 href를 추출 # 다시 request 날려 준다 response = requests.get(url, headers={'User-agent':'Mozila/5.0'}) html = response.text soup = BeautifulSoup(html, 'html.parser') # 만약 연예 뉴스라면 if "entertain" in response.url : title = soup.select_one(".end_tit") content = soup.select_one("#articeBody") elif "sports" in response.url : title = soup.select_one("h4.title") content = soup.select_one("#newsEndContents") # 본문 내용안에 불필요한 div, p 삭제 divs = content.select('div') for div in divs : div.decompose() paragrahs = content.select('p') for p in paragrahs: p.decompose() else : title = soup.select_one(".media_end_head_headline") content = soup.select_one("#newsEndContents") print("==========링크==========\n", url) print("==========제목==========\n", title.text.strip()) print("==========본문==========\n", content.text.strip()) time.sleep(0.3)==========링크==========https://n.news.naver.com/mnews/article/005/0001678573?sid=102==========제목==========나이도 못 막았다… 8090 ‘은발의 손흥민’들Traceback (most recent call last):File "c:\Program Files\FirstPython\crawling\10.셀리니움_기본설정\Chapter04\04.스포츠뉴스크롤링하기.py", line 42, in <module>print("==========본문==========\n", content.text.strip())^^^^^^^^^^^^AttributeError: 'NoneType' object has no attribute 'text'하면 이렇게 에러가 나요 선생님 ㅠ.ㅠ 주소창을 보니깐 sports가 안 들어가 있는데 출력이 되어서 나옵니다. 혹시 넘어갈려면 어떻게 해야 하는지 여쭤봐도 되겠습니까?!
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
HTML 변경으로 인한 CSS 선택자 및 줄바꿈 문의
import requests from bs4 import BeautifulSoup response = requests.get('https://search.naver.com/search.naver?ssc=tab.news.all&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') news_infos = soup.select(' div.info_group') news_num = 1 for news_info in news_infos: news_link = news_info.select('a.info') if len(news_link) >= 2 : url = news_link[1].attrs['href'] news_info = requests.get(url) news = news_info.text news_information = BeautifulSoup(news, 'html.parser') news_text = news_information.select_one('article') print(str(news_num) , "입니다>>>>>>>>>>>>>>>>") print(news_text.text) news_num += 1CSS선택자를 article로 선택하고출력을 하였더니 결과값 사이 사이에 줄바꿈이 있네요없앨 수 있는 방법은 무엇일까요?
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
Reindexing only valid with uniquely valued Index objects 오류 질문입니다.
import timeimport pandas as pddef get_item_info(item_code): item_url = f'https://finance.naver.com/item/main.naver?code={item_code}' tables = pd.read_html(item_url, encoding='cp949') # if len(tables) == 13: # 코넥스를 거르기 위해 추가함 # continue item_info = [] # 빈 리스트 생성 finance_info = tables[3].iloc[:,[0,-2]] finance_info.columns = [0,1] # 합치기 전 칼럼명 일치시켜주기 item_info.append(finance_info) for t in tables: if t.shape[1] == 2: item_info.append(t) df_item = pd.concat(item_info) df_item = df_item.set_index(0).T time.sleep(0.2) # 과부하 막기 위한 지연 조회, 최소 0.1 이상. return df_itemimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plt # 한글폰트 위함import datetimeplt.style.use("seaborn-v0_8-talk")font_family = "Malgun Gothic"plt.rc("font", family = font_family)plt.rc("axes", unicode_minus=False)url = 'https://finance.naver.com/sise/sise_group_detail.naver?type=upjong&no=282'table = pd.read_html(url, encoding='cp949')raw = table[2]raw = raw.dropna(how='all').dropna(axis=1, how='all') #추가해서 칼럼도 모두 결측치시 삭제.today = datetime.datetime.today()today = today.strftime('%y%m%d')raw['종목명전처리'] = raw['종목명'].str.replace('*','', regex=True) # 문자치환raw['종목명전처리'] = raw['종목명전처리'].str.strip() # 앞뒤 공백 제거import FinanceDataReader as fdrdf_krx = fdr.StockListing('KRX')# print(df_krx[['Code','Name']])df_item_code_name = df_krx[['Code','Name']]# 위의 종목명_전처리 칼럼과 Name 칼럼을 연결지어서 코드 잡아준다.df_item_code_name.columns = ['종목코드', '종목명전처리']raw = raw.merge(df_item_code_name) # 강의에서 df에 해당함# progress_apply는 map의 사용방법을 되짚어보면서 봐라. 일괄적으로 함수 적용시 사용.# 진행사항을 보려면 progress_apply을 사용하면 된다.from tqdm.auto import tqdmtqdm.pandas()result = raw['종목코드'].progress_apply(get_item_info)# result로 받아서 데이터프레임 형식으로 concat 해줘야해서 tolist() 사용함df_item_info = pd.concat(result.tolist())# print(df_item_info['종목코드']) # 출력해보면 종목코드가 없다. 그래서 넣기# df_item_info['종목코드'] = raw['종목코드'] # 아래의 reset_index를 위해 비활성화함# print(df_item_info['종목코드'])# 위에서 index값이 1로 모두 같아 종목코드가 모두 동일 하므로 아래처럼 인덱스 다시 적용df_item_info = df_item_info.reset_index()df_item_info['종목코드'] = raw['종목코드']# print(df_item_info['종목코드'])# 위와 같이 작업 후 index라는 칼럼을 삭제해 준다.del df_item_info['index']# print(raw.shape)df_info = raw.merge(df_item_info) # 따로 지정 안해줘도 종목코드가 같기에 합쳐진다.# 파일명 만들기file_name_1 = url.split('=')[1].replace('&','_')file_name_2 = url.split('=')[2]file_name = f'{file_name_1}_{file_name_2}.csv'# 저장하기df_info.to_csv(file_name, index=False, encoding='cp949') 위와 같이 코드를 작성하고 실행 했는데요. 제목과 같은 오류가 발생 했습니다. 원인을 찾아 본 결과.코넥스 종목이 포함되어 있어서 칼럼명이 맞지 않아 발생하는 것으로 보입니다. 위의 이미지와 같이 코넥스 종목은 코스닥, 코스피 종목 처럼 table 개수 13개 보다 적게 나오므로 if문으로 table개수가 13개 이하이면 건너띄어 데이터를 받게 하면 오류가 발생하지 않을 것 같은데요. if 문을 함수 어느 위치에 넣으면 좋을지 모르겠어서 질문 드립니다. 어느 위치에 if문을 넣어서 해결하면 좋을까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
asyncio.run() cannot be called from a running event loop 에러 질문 드립니다
안녕하세요 선생님강의 듣고 있는 이광희라고 합니다.올려주신 강의로 텔레그램 자체 API를 써서 메세지 전송하기까진 했는데요이미지를 전송하려고 보니 거의 모든 블로그, 유튜브 설명들이 파이썬 텔레그램봇으로 설명 하더라구요근데 이 봇이 v20으로 바뀌면서 비동기 프로그래밍(?)이 된거 같습니다.설명하고 있는 코드들이 다 과거 버전 코드들이네요. 그래서 위키에 직접 가서 코드를 보고 있는데요 import asyncio import telegram async def main(): bot = telegram.Bot("TOKEN") async with bot: print(await bot.get_me()) if __name__ == '__main__': asyncio.run(main())그냥 위키에 나오는 간단한 코드인데도 RuntimeError: asyncio.run() cannot be called from a running event loop이런 에러가 계속 뜹니다.async 부터 공부하려고 다른 유튜브를 찾아서import asyncio async def main(): await asyncio.sleep(1) print('hello') asyncio.run(main())이런 간단한 코드를 입력해도똑같은 오류가 뜨네요...이벤트 메인 루프가 실행되고 있는 동안에 함수가 작동할수 없다 그런 내용인거 같은데위키에 있는 그대로 따라해도 에러가 나니 비전공자 입장에서는 어떻게 해야 좋을지 모르겠네요. 경영학과 출신 직장인이 실무에서 쓰려고 파이썬을 배우고 있는데물어볼곳이 여기밖에 없어 여쭤봅니다ㅠㅠ 좀 도와주세요깃헙? 말고 국내 파이썬 qna있는 커뮤니티라도 알려주시면 가서 좀 물어보고 싶은데 그게 어디인지도 모르겠네요.
-
미해결파이썬 텍스트 분석 입문 - 데이터 수집부터 분석까지
jpype 설치관련
안녕하세요 아래 답글에 남겼었는데, 질문 몇가지가 있는데요,jpype 설치가 잘 진행이 되지 않는 것 같은데 댓글 한 번 확인 부탁드려요!그리고 jpype 를 설치하지 않고 Konply 만 설치해도 되나요 ???바쁘신데 감사합니다!
-
미해결네이버 카페 DB 추출 프로그램 개발 강의 [selenium]
환불요청 실습 진행 적용 불가
네이버 카페 DB를 수집하기 위해 강의를 구입하였는데...내용이 어려워 강의내용을 복습하다 보니 4강에서 부터 실습이 전혀 진행이 안되네요2024년 2월 날짜 기준 강의 내용 과 현재의 패턴이 달라 적용이 안되네요강의내용과 다름(네이버카페 쪽지에 아이디를 찾을 수가 없어 )패턴 실습 진행이 불가능합니다..네이버카페 보안강화로 인한 강의"내이버카페 DB추출 프로그램 개발"내용은 적용 불가능한 것으로 판단됨 이 부분 확인 부탁 드리며 환불 요청 드립니다.. 환불사유 일반 강의도 아닌 "네이버 카페 DB추출 프로그램 개발" 강의 인데 강의 실습이 진행되지 않는점.특정 프로그램 개발만을 위한 짧은 강의만으로 이루어진 강의.네이버 보안으로 막힌 부분으로 인프런측에서 이 강의는 삭제를 해야할 사안 같네요.답변 연락부탁드립니다.