묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
크롤링해서 엑셀로 넣는 걸 만들어 봤는데..
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.import requestsfrom bs4 import BeautifulSoupimport openpyxlexcel_file=openpyxl.Workbook()excel_sheet=excel_file.activeexcel_sheet.append(["rank","name","date"])res=requests.get("https://davelee-fun.github.io/")soup=BeautifulSoup(res.content,"html.parser")data1=soup.select("section.featured-posts")for index,A in enumerate(data1): product_name=A.select_one("h4.card-text") product_date=A.select_one("span.post-date") excel_sheet.append([index+1,product_name.get_text(),product_date.get_text()])excel_file.save("oh.xlsx")excel_file.close() --------------------------------------------일단 이게 제가 만든겁니다.All stories에 있는 목록이 아닌featured에 있는 4개의 상품목록만 리스트로 엑셀에 상품이름과 상품날짜를 넣어서 만들고 싶었습니다.오류는 나지 않았고 엑셀로 들어가보면제일 처음에 있는 상품 1개만 뜨고 나머지 하위 3개는 안뜨네요 ㅠㅠ 뭐가 잘못된걸까요?1상품명: 보몽드 순면스퀘어 솔리드 누빔매트커버, 다크블루05 Jun 2020
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
변수를 생성하는게 좋은 경우?
이유를 모르겠는데 문제를 풀 때 간단한 계산식이라도radius = 10pi = 3.1415diameter = 2 * radiuscircumference = 2 * pi * radiusarea = pi * (radius * 2)print("지름은?" , diameter)print("둘레는?" , circumference)print("넓이는?" , area)이런 식으로 print에서 바로 계산을 안하고 변수를 만든 다음 출력하는 방식을 써서요. 습관이 잘못 잡힐까봐 걱정인데 선생님 방식대로 print("지름은?" , 2 * radius ) 이렇게 하는게 좋겠죠?
-
미해결내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)
pip install -r requirements.txt 문제
pip install -r requirements.txt 를 치면 아래처럼 설ㄹ치가 되는것 같더니 설치가 끝나질 않고 계속 한줄씩 떠요... 사진처럼 계속 뜨는 와중에 캡쳐해온거에요ㅠ뭐가 문제일까요..?강제로 멈추고 uninstall하면 이렇게 뜹니다
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
태그와 속성이라는 개념을 제가 잘 이해했나요?
안녕하세요.'패턴으로 실습하며 익히기: HTML 이해를 바탕으로 크롤링하기' 강의를 듣고 있습니다.태그와 속성이라는 개념이 여러번 등장하는데,제가 잘 이해했는지 궁금합니다.제가 이해하기로 태그는 속성의 이름을 말하는 것이고,속성은 HTML언어에서 '파이썬의 문자열, 숫자, 소수점 등 변수종류' 와 비슷한 역할 하는 것 같습니다.예를 들어서img src = 'dimg.png' width = '100' 에서img는 속성을 부르는 명칭입니다.src는 이미지 파일이라고 컴퓨터에게 알려주는 속성입니다. 제가 잘 이해했는지 알려주시면 감사하겠습니다.HTML언어가 파이썬 언어에 비해 생긴게 복잡해서 배우기 어려운 것 같습니다.
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
크롤링 패턴 코드 궁금한 점이 있습니다.
다음 코드는 크롤링 패턴 코드에서 앞 부분만 따왔습니다.출처: 패턴으로 실습하며 익히기:HTML 이해를 바탕으로 크롤링하기import reqests 해석: reqests라는 라이브러리를 가져온다.from bs4 import BeautifulSoup해석:bs4 라이브러리에서 뷰티플 솦이라는 클래스를 가져온다.Q1 왜 두개의 라이브러리 명이 나올까요?라이브러리 reqests, bs4Q2처음 import는 라이브러리를 가져왔는데 왜다음 import 에서는 뷰티플 솦 클래스를 가져올까요?그냥 코드쓰는 방식을 외워야 하나요?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
웹페이지 데이터 가져오는 명령어가 작동을 안합니다.
제가 겪은 문제는, 웹페이지 데이터 가져오는 명령어가 비쥬얼 스튜디오에서 작동을 안했다는 겁니다. 빙홈페이지 등의 웹페이지 주소를 배웠던 명령어에 기입하면,invaild 모모 등 코드 문법 오류만이 떠요.제가 쳤던 명령어는 다음과 같습니다.res = reqest.get(웹주소)[Q 뭐가 문제일까요?]비쥬얼 스튜디오 문제일까요?제 노트북이 많이 느려서 쥬피터 노트북은 쓰지 않았습니다.혹은 특정 웹 주소 등의 데이터는 못가져 올까요?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
아나콘다, colab
colab 에서 개발 연습을 하고있었는데 colab또한 Jupyter notebook을 기반으로 만들었다고 알고있는데 아나콘다 말고 colab을 사용해도될까요? 아나콘다 사용을 권장하시나요?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
교재 문의드려요
안녕하세요 이제 막 수강 신청했는데 교재 문의드려요검색해서 교재(구름마크) 다운로드는 확인했는데, 혹시 문제만 나와있는 파일들은 어디서 받을 수 있을까요? 파일열어보니 답까지 모두 나와있던데.. 감사합니다 - 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
화면은 나오는데 빈 화면이 나옵니다.
강의 설명대로 만들었는데 빈화면만 나오네요. ㅠㅜ윈도우 10, VisualStudio Code 입니다.뭐가 문제일까요?~ 디자인 한 화면 ~~ 실행 화면 ~[ login_ui.py ]# -*- coding: utf-8 -*- ################################################################################ ## Form generated from reading UI file 'login.ui' ## ## Created by: Qt User Interface Compiler version 6.7.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, QMetaObject, QObject, QPoint, QRect, QSize, QTime, QUrl, Qt) from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont, QFontDatabase, QGradient, QIcon, QImage, QKeySequence, QLinearGradient, QPainter, QPalette, QPixmap, QRadialGradient, QTransform) from PySide6.QtWidgets import (QApplication, QLabel, QLineEdit, QPushButton, QSizePolicy, QWidget) class Ui_Form(object): def setupUi(self, Form): if not Form.objectName(): Form.setObjectName(u"Form") Form.resize(471, 480) font = QFont() font.setFamilies([u"\ub098\ub214\uace0\ub515"]) font.setPointSize(11) Form.setFont(font) self.pushButton = QPushButton(Form) self.pushButton.setObjectName(u"pushButton") self.pushButton.setGeometry(QRect(120, 350, 231, 81)) font1 = QFont() font1.setFamilies([u"\ub098\ub214\uace0\ub515"]) font1.setPointSize(11) font1.setBold(True) self.pushButton.setFont(font1) self.label = QLabel(Form) self.label.setObjectName(u"label") self.label.setGeometry(QRect(60, 120, 61, 16)) self.label_2 = QLabel(Form) self.label_2.setObjectName(u"label_2") self.label_2.setGeometry(QRect(60, 160, 71, 21)) self.lineEdit = QLineEdit(Form) self.lineEdit.setObjectName(u"lineEdit") self.lineEdit.setGeometry(QRect(140, 110, 241, 31)) self.lineEdit_2 = QLineEdit(Form) self.lineEdit_2.setObjectName(u"lineEdit_2") self.lineEdit_2.setGeometry(QRect(140, 160, 241, 31)) self.retranslateUi(Form) QMetaObject.connectSlotsByName(Form) # setupUi def retranslateUi(self, Form): Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None)) self.pushButton.setText(QCoreApplication.translate("Form", u"\ub85c\uadf8\uc778", None)) self.label.setText(QCoreApplication.translate("Form", u"\uc544\uc774\ub514", None)) self.label_2.setText(QCoreApplication.translate("Form", u"\ube44\ubc00\ubc88\ud638", None)) # retranslateUi [ login.ui ]<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>Form</class> <widget class="QWidget" name="Form"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>471</width> <height>480</height> </rect> </property> <property name="font"> <font> <family>나눔고딕</family> <pointsize>11</pointsize> </font> </property> <property name="windowTitle"> <string>Form</string> </property> <widget class="QPushButton" name="pushButton"> <property name="geometry"> <rect> <x>120</x> <y>350</y> <width>231</width> <height>81</height> </rect> </property> <property name="font"> <font> <family>나눔고딕</family> <pointsize>11</pointsize> <weight>75</weight> <bold>true</bold> </font> </property> <property name="text"> <string>로그인</string> </property> </widget> <widget class="QLabel" name="label"> <property name="geometry"> <rect> <x>60</x> <y>120</y> <width>61</width> <height>16</height> </rect> </property> <property name="text"> <string>아이디</string> </property> </widget> <widget class="QLabel" name="label_2"> <property name="geometry"> <rect> <x>60</x> <y>160</y> <width>71</width> <height>21</height> </rect> </property> <property name="text"> <string>비밀번호</string> </property> </widget> <widget class="QLineEdit" name="lineEdit"> <property name="geometry"> <rect> <x>140</x> <y>110</y> <width>241</width> <height>31</height> </rect> </property> </widget> <widget class="QLineEdit" name="lineEdit_2"> <property name="geometry"> <rect> <x>140</x> <y>160</y> <width>241</width> <height>31</height> </rect> </property> </widget> </widget> <resources/> <connections/> </ui> [ 실행 파이썬 코드 ]import sys from PySide6.QtWidgets import QApplication, QWidget from login_ui import Ui_Form class MainWindow(QWidget, Ui_Form): def __inint__(self): super().__init__() self.setupUi(self) app = QApplication() window = MainWindow() window.show() sys.exit(app.exec())
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
파라미터 종류가 많을 경우 꿀팁 강의에서
Params=param 이라고 왜 쓰는건가요??
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
lambda 중에 문의가 있습니다.
강의 내용 외 개인적인 실습 사이트의 질문은 답변이 제공되지 않습니다.문제가 생긴 코드, 에러 메세지 등을 꼭 같이 올려주셔야 빠른 답변이 가능합니다.코드를 이미지로 올려주시면 실행이 불가능하기 때문에 답변이 어렵습니다.답변은 바로 제공되지 않을 수 있습니다.실력 향상을 위해서는 직접 고민하고 검색해가며 해결하는 게 가장 좋습니다.최대한 구글링을 동원해서 해보는 중인데 막히네요.모니터링 가서 로그 나오는것 까지 확인 했습니다. event, message, text 이렇게 표시 되는거요.def lambda_handler(event, context): result = json.loads(event["body"]) print(f"event : {event}") keyword = result["message"]["text"] news_crawler(keyword) 그다음 위의 코드 작성하고 run을 해보면 아래와 같이 body 키 문제가 있다고 나옵니다.무슨문제일까요...ㅜ"errorMessage": "'body'", "errorType": "KeyError", "requestId": "628cac7e-f4ae-41f3-9ba3-ba7a3e7f464f", "stackTrace": [ " File \"/var/task/lambda_function.py\", line 59, in lambda_handler\n result = json.loads(event['body'])\n"
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버 자동 로그인 관련
네이버 자동 로그인 하고 있는데, 잘 되지 않습니다. 코드가 동일하게 작성된 것 같은데 제가 놓치고 있는 부분이 있을까요?from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time import pyperclip #크롬 드라이버 생성 driver = webdriver.Chrome() driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/") time.sleep(1) #아이디 입력 id = driver.find_element(By.CSS_SELECTOR, '#id') pyperclip.copy(userid) id.click() id.send_keys(Keys.CONTROL,'v') time.sleep(1) # 비밀번호 입력 pw = driver.find_element(By.CSS_SELECTOR, '#pw') pyperclip.copy(userpwd) pw.click() pw.send_keys(Keys.CONTROL,'v') time.sleep(1) # 로그인 버튼 클릭 driver.find_element(By.CSS_SELECTOR, '#log\\.login').click()
-
미해결LLM 데이터 분석 - 웹 크롤링부터 추천 시스템까지
강의에서 소스코드는 어디서 볼 수 있을까요?
찾아봤는데 못찾겠어서 질문 드립니다,,,,
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
텔레그램 sendMessage 시 400에러가 뜹니다.
message = input("message: ") data = {"chat_id":chat_id, "text":message} url = f"http://api.telegram.org/bot{bot_token}/sendMessage" res = requests.get(url, data=data) print(res) if res.status_code == 200: print(json.loads(res.text)) 위처럼 작성하고 실행해보면 response 400에러가 발생합니다. getUpdate 메서드는 정상실행이 되는데 뭐가 문제인지 모르겠습니다....url 공백이 있으면 400에러가 발생한다고 검색은 해봤는데 , 전 공백도 없는것 같고.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
네이버쇼핑 검색창 넘어가기전 팝업창이 안사라져요
다른답변에서 popup_close_button = browser.find_element(By.CSS_SELECTOR, "팝업 닫기 버튼의 CSS 선택자")popup_close_button.click() 이 방법도 해보고 팝업창 닫기 버튼 browser.find_element(By.XPATH, '/html/body/div[3]/div/div[1]/div/div[4]/div/div/button[1]').click()이렇게도 입력해 봤는데 계속 사라지지가 않아서 검색 단계로 넘어갈수가 없네요 ㅠㅠㅠㅠㅠ
-
해결됨남박사의 파이썬으로 봇 만들기 with ChatGPT
완성된 코드는 제공되지 않나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 강의 자료에는 따로 완성된 코드를 볼 수 있는 자료가 없던데 제공되지 않는건가요?
-
미해결12시간 안에 끝내는 파이썬을 활용한 크롤링
수업중 따라하기 오류 ㅠㅠ
수업중 seleium 에 관하여 배웠습니다.하지만 처음부터 뭔가 오류가 나서 잘되지 않네요selenium은 설치가 잘 된건가요?ModuleNotFoundErrorNameError은 왜그런거죠?ㅠㅠ답변 부탁드립니다. ㅠㅠ
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버쇼핑 질문 있습니다!
네이버쇼핑크롤링을 연습도중 상품썸네일 링크를 가져와보고싶어서 연습을해봤는데 아래링크처럼했을때 첫번째 상품의 이미지링크만 가져오게되고 나머지 이미지썸네일 링크는 여러가지 다른선택자를 이용해서 시도를 해봤지만 이와같이 한개의 이미지썸네일 링크만 가져와져서 이럴때 어떻게 해야될지 궁금합니다!from selenium import webdriver import time from bs4 import BeautifulSoup import re from urllib.parse import urlparse, urlunparse driver = webdriver.Chrome() driver.get('https://search.shopping.naver.com/search/all?adQuery=%EB%8B%AD%ED%84%B8%EB%BD%91%EB%8A%94%EA%B8%B0%EA%B3%84&origQuery=%EB%8B%AD%ED%84%B8%EB%BD%91%EB%8A%94%EA%B8%B0%EA%B3%84&pagingIndex=1&pagingSize=40&productSet=overseas&query=%EB%8B%AD%ED%84%B8%EB%BD%91%EB%8A%94%EA%B8%B0%EA%B3%84&sort=review&sps=N×tamp=&viewType=list') 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 new_height == last_height: break last_height = new_height html = driver.page_source soup = BeautifulSoup(html, 'html.parser') items = soup.select(".product_item__MDtDF") for item in items: # 이미지 URL 찾기 img = item.select_one(".product_img_area__cUrko img") print(img)
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
html주소를 다른 컴터에서도 접속하기
html기초 강의에서 만들어진 웹페이지를 제 컴터에서 크롬키고 주소 복붙하면 들어가지는데핸드폰(아이폰) 크롬앱으로 주소 복붙하면 안들어가지네요다른 컴터에서도 url만으로 들어가지는 웹을 만들고싶은데..음 웹 강의를 따로 들어야할까요?아니면 여기서 간단히 무엇만 추가하면 될까요
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버 메일 자동화편 드롭다운 메뉴클릭 부분
수업 듣다가 드롭다운 메뉴 클릭 부분에서 NoSuchElementException 오류가 뜨면서 메일 드롭다운 클릭이 안됩니다.왜이런 걸까요??#셀레니움 기본 템플릿 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time import pyperclip from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC #크롬 드라이버 생성 driver = webdriver.Chrome() #페이지 이동 driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/") time.sleep(0.5) # 아이디 입력 id = driver.find_element(By.CSS_SELECTOR, "#id") pyperclip.copy(user_id) id.send_keys(Keys.CONTROL, 'v') time.sleep(0.5) # 패스워드 입력 pw = driver.find_element(By.CSS_SELECTOR, "#pw") pyperclip.copy(user_pw) pw.send_keys(Keys.CONTROL, 'v') time.sleep(0.5) # 로그인 버튼 클릭 driver.find_element(By.CSS_SELECTOR, "#log\\.login").click() driver.get("https://www.naver.com/") time.sleep(1) #드롭다운 메뉴 클릭 driver.find_element(By.CSS_SELECTOR, "#account > div.MyView-module__my_menu___eF24q.MyView-module__is_open____qWM1 > div > div > ul > li:nth-child(1) > a > span.MyView-module__item_text___VTQQM").click()오류내용--------------------------------------------------------------------------- NoSuchElementException Traceback (most recent call last) Cell In[34], line 35 33 time.sleep(1) 34 #드롭다운 메뉴 클릭 ---> 35 driver.find_element(By.CSS_SELECTOR, "#account > div.MyView-module__my_menu___eF24q.MyView-module__is_open____qWM1 > div > div > ul > li:nth-child(1) > a > span.MyView-module__item_text___VTQQM").click() File c:\Users\LEGION\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py:741, in WebDriver.find_element(self, by, value) 738 by = By.CSS_SELECTOR 739 value = f'[name="{value}"]' --> 741 return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"] File c:\Users\LEGION\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py:347, in WebDriver.execute(self, driver_command, params) 345 response = self.command_executor.execute(driver_command, params) 346 if response: --> 347 self.error_handler.check_response(response) 348 response["value"] = self._unwrap_value(response.get("value", None)) 349 return response File c:\Users\LEGION\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\errorhandler.py:229, in ErrorHandler.check_response(self, response) 227 alert_text = value["alert"].get("text") 228 raise exception_class(message, screen, stacktrace, alert_text) # type: ignore[call-arg] # mypy is not smart enough here --> 229 raise exception_class(message, screen, stacktrace) NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"#account > div.MyView-module__my_menu___eF24q.MyView-module__is_open____qWM1 > div > div > ul > li:nth-child(1) > a > span.MyView-module__item_text___VTQQM"} ... (No symbol) [0x00007FF723ECECA2] (No symbol) [0x00007FF723EBE16F] BaseThreadInitThunk [0x00007FFB1DF87344+20] RtlUserThreadStart [0x00007FFB1EA3CC91+33] Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...