묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 셀레니움 고급편 (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"가 없어진거 같아서 다른걸 붙여서 했는데도 오류가 나는데 뭐가 잘못된 걸까요ㅠㅠㅠㅠ답변이 선생님이랑은 다르게 이렇게 나와서요ㅠㅠ똑같이 따라하는데 뭐가 잘못된 건지 모르겠어요ㅠㅠ
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
뉴스기사 크롤링 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라이브러리가 버전업이 되면서 없어졌다고 하는 것 같습니다. 대체하는 함수가 따로 있을까요?
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 기본편
뉴스 페이지에 페이지 번호가 없는데 어떻게 가져오나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.네이버 뉴스 페이지를 보니 페이지 번호가 없고 스크롤하면 다음 뉴스가 계속해서 나오는 것 같은데 어떻게 가져오나요?
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
concat을 통한 데이터프레임 합치기
# result를 list로 만들고 concat을 통해 DataFrame으로 만듭니다.# concat으로 데이터프레임을 합쳐줄때는 리스트 형태로 각 데이터프레임을 넣어주어야 합니다.pd.concat(result.tolist()) --------------------------------------------------------InvalidIndexError: Reindexing only valid with uniquely valued Index objectsdf_item = pd.concat(item_info, ignore_index=True)도 해보았고, 중복값도 없다고 나오는데 계속 이 부분에서 동일한 에러가 뜹니다.. 어떻게 해결해야 할까요? 이 앞부분까지는 모두 정상출력되었습니다!
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
반복문 38번 질문있습니다.
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 리스트변수에서 음수 데이터를 삭제하고 양수만 가지는 리스트 변수를 출력하는 문제입니다.저는 답변을 : num_list=[0,-11,31,22,-11,33,-44,-55]for num in num_list: if num<0: num_list.remove(num)print(num_list)이렇게 작성하였는데 출력값이 [0, 31, 22, 33, -55]이렇게 나오더라구요 ㅠㅠ 마지막에 -55는 왜 들어가버린거죠..?
-
미해결파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)
1강에서 localhost:4000 접속
1강에서http://localhost:4000 연결은윈도우 자체에서 4000번 포트를 열어서 연결하는건가요?설명없이 갑자기 4000번 포트로 연결하니 따라가기가 어렵습니다.
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 기본편
네이버 쇼핑에 팝업창이 뜨기 시작했어요 도와주세요 ㅠㅠ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님하기 이미지처럼 그저께부터 팝업이 뜨기 시작해 검색창 클릭이 단계로 안넘어갑니다 ㅠㅠ배운 내용대로 코드를 한번 만들어보았는데 작동이 되질 않내요 ㅠㅠ다른 방법이 있을까요...?browser.find_element(By.CSS_SELECTOR,"._searchInput_search_input_QXUFf").click()
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 기본편
셀레니움 실습 시 창이 자동 차단되면서 꺼집니다.
안녕하세요~ 셀레니움 강의를 따라가던 중,네이버 창을 열고 브라우저 꺼짐 방지시켜주는 코드까지 입력을 하고 실행했는데네이버 창이 떴다가 곧 '주의 요함' 이라고 뜨는 Chrome 창으로 전환이 되어 버립니다.위에 팝업으로 'Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다' 라고도 떠 있습니다.해결 방안이 있을까요?
-
해결됨[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
연예뉴스크롤링의 CSS연산자 적용 및 no attribute 'text' 해결 방법
안녕하십니까, 강사님. 강의 잘 듣고 있습니다.<연예뉴스크롤링>에서 뉴스 불러오기가 안돼 질문드립니다. 이렇게 코드를 작성했습니다. import requestsfrom bs4 import BeautifulSoupimport timeresponse = requests.get("https://entertain.naver.com/ranking/read?oid=076&aid=0004129264")html = response.textsoup = BeautifulSoup(html, 'html.parser')articles = soup.select("div.info_group")for article in articles:links = article.select("a.info")if len(links) >= 2:url = links[1].attrs['href']response = requests.get(url, headers={'User-agent':'Mozila/5.0'})html = response.textsoup = BeautifulSoup(html, 'html.parser') if "entertain" in response.url:title = soup.select_one(".end_tit")content = soup.select_one("#articeBody")else:title = soup.select_one("#articleTitle")content = soup.select_one("#newsct_article") print(content.text) 이렇게 하면 이런 표시만 나옵니다.C:\스타트코딩_크롤링>C:/Users/Sedaily/AppData/Local/Microsoft/WindowsApps/python3.11.exe c:/스타트코딩_크롤링/03_연예뉴스크롤링하기.py 그래서 else:title = soup.select_one("#articleTitle") 의 CSS 연산자를 #news_tit로 바꿔서 else:title = soup.select_one("#news_tit")이렇게 하니 불러오기는 됩니다.[1번 질문] 강의 마지막 부분에 ID 값이기 때문에 앞의 # 을 . 으로 변경하라고 알려주셨는데 그렇게 하면 안됩니다. html이 강의 당시와 변경돼 그런 건지, 이유가 궁금합니다. [2번 질문] 마지막 부분의 print(content.text) 대신링크, 제목, 본문 정리해서 가져오는 코드로 알려주신 이 코드를 밑에 붙이면print("=======링크=======\n", url)print("=======제목=======\n", title.text)print("=======본문=======\n", content.text) 이렇게 표시가 됩니다. 해결 방법 알려주시면 감사하겠습니다. =======링크=======https://n.news.naver.com/mnews/article/003/0012480442?sid=101Traceback (most recent call last):File "c:\스타트코딩_크롤링\03_연예뉴스크롤링하기.py", line 26, in <module>print("=======제목=======\n", title.text)^^^^^^^^^^AttributeError: 'NoneType' object has no attribute 'text'
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
이 다음 강의도 준비가 되어 있을까요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 크롤링 관련해서 이 다음 클래스도 준비되어 있을까요??도움많이 받고 있어 조금 더 고급 스킬 배우고 싶습니다.
-
미해결내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)
부동산 KB 시세 크롤링 문의
kb시세를 크롤링하는 부분에서 같은평형대가 존재하면 마지막에 있는 평형대의 시세를 가져오는것 같습니다.예를들어 해당단지에 117A 타입과 117B타입이 있습니다.아파트의경우 A타입의 거래는 많지만 B타입은 거래가 없습니다.그래서 A타입의 시세를 조회해야하는데 코드 특성상 같은평형이라면 마지막에 수행한 시세정보를 가져오게 되어있습니다. B타입의 시세를 가져오게 되면 현 시세와 맞지 않는 부분이있습니다. 같은평형대가 있다면 A타입의 시세를 가져오는 코드가 궁금합니다. #kb시세 series_list = [] for _, row in final_complex_detail_df.iterrows(): complex_num = row['complexNo'] area_num = row['pyeongNo'] url = "https://new.land.naver.com/api/complexes/{}/prices?complexNo={}&tradeType=A1&year=5&priceChartChange=false&type=table&areaNo={}&provider=kbstar".format( complex_num, complex_num, area_num ) res = requests.get(url, headers=headers) data_dict = res.json() try: series = pd.DataFrame(data_dict['marketPrices']).iloc[0] series['complexNo'] = complex_num series['pyeongNo'] = area_num series_list.append(series) except: continue time.sleep(0.03) price_df = pd.concat(series_list, axis=1).T
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
Exercise 22. 문자열 다루기 (strip) 문의
code = ' 000660\n abc'print (code)print (code.strip(' \n')) 결과 000660 abc 000660 abc로 \n 이 제거가 되지 않고 줄 바꿈 되었습니다.잘못 코딩한 부분이 어디인지 문의 드립니다.
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 기본편
낮은 가격순을 클릭하는 문을 추가하고싶습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 상품 검색 후 '낮은 가격순'을 클릭하고 수집하고싶습니다.