파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기

파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기

(40개의 수강평)

1184명의 수강생
laodlhoya 프로필

클래스 접근이 어려워요ㅠ 도와주세요 laodlhoya 2일 전

안녕하세요~ 강의 정말 잘 듣고 있습니다.

제가 클래스 접근이 서툴러서 아래와 같은 문제를 해결 못하고 있습니다.

부디 도움 부탁드립니다.

 

Form.py 와 Main.py , Form2.py 3개로 이뤄어진 프로젝트에서

Form.py 에서는 변수만 만들어주고 Main 에서 띄어주는거 까지 성공했습니다.

이젠 Form2.py 에서 Form.py 에서의 버튼의 사이즈를 변경하고 싶습니다.

감사합니다~

밑에는 제가 작성한 코드 입니다.

main.py

import sys, Form, Form2
from PyQt5.QtWidgets import QWidget, QApplication


class MainWindow(QWidget, Form.Ui_Form):
def __init__(self):
super().__init__()
self.setupUI()
# self.set_resize(200, 200)

if __name__ == "__main__":
app = QApplication(sys.argv)
form = MainWindow()
form.show()
app.exec_()

 

Form.py

import sys

from PyQt5.QtWidgets import QPushButton

class Ui_Form(object):
def setupUI(self):
self.pb1 = QPushButton('test', self)
# self.pb1.resize(200, 200)

def set_resize(self, width, height):
self.pb1.resize(width, height)

Form2.py

from Form import Ui_Form

class camera_set(object):
def pb_resize(self):
self.ui = Ui_Form()
self.ui.set_resize(200, 200)
# self.pb_resize(200, 200)

1
김동연 프로필

가상환경에서 한글깨짐 현상 김동연 10일 전

안녕하세요 선생님 선생님 강의 잘 듣고 있습니다 

선생님이 써주시는 코드 열심히 해나가고 있는데 저는 

아나콘다 프롬프트에서 python xxx.py 명령을 실행을 시키면 

cmd 에 한글이 깨지는 현상이 발생합니다

atom 에서 하면은 

import sys

import io

sys.stdout = io.TextIOWrapper(sys.stdout.detach() , encoding = "UTF-8") ## 스탠다드 출력 인코딩 설정

sys.stderr = io.TextIOWrapper(sys.stderr.detach() , encoding = "UTF-8") ## 스탠다드 에러 일때 출력

로 인해서 아톰에서는 한글이 안꺠지는데 

아나콘다 프롬프트에서 계속 한글이 깨집니다

도움좀 부탁드리겠습니다 

1
diadld3 프로필

에러가 뜨네여.. diadld3 10일 전

import pytube

import os

import subprocess

yt = pytube.YouTube("https://www.youtube.com/watch?v=1ag0HMg0sHU")

videos =yt.streams.all()

for i in range(len(videos)) :

    print(i,' , ',videos[i])

down_dir = "Users/diadld3naver.com/Desktop/youtube-download"

cNum = int(input("다운로드 받을 화질?(0~16 입력)")) 

videos[cNum].download(down_dir)

newFilename = input("변환 할 mp3 파일명은?")

oriFilename = videos[cNum].default_filename

subprocess.call(['ffmpeg','-i',os.path.join(down_dir,oriFilename),os.path.join(down_dir,newFilename)])

print("동영상 다운로드 밑 mp3 변환 완료")

코드 똑같이 사용했는데 에러가 나와여..

Traceback (most recent call last):

  File "youtube-download.py", line 15, in <module>

    videos[cNum].download(down_dir)

  File "/Users/diadld3naver.com/opt/anaconda3/envs/section1/lib/python3.8/site-packages/pytube/streams.py", line 245, in download

    with open(fp, 'wb') as fh:

FileNotFoundError: [Errno 2] No such file or directory: 'Users/diadld3naver.com/Desktop/youtube-download/Lauv - Paris In The Rain [Cover by YELO].mp4'

cNum 없이 인덱스 0으로할때는 비디오가 저장이 잘됬지만 cNum변수 설정후 비디오 저장이 안되며 위와 같이 에러코드가 나옵니다.. 도와주세요ㅠㅠ

0
HyeonJoon Jeong 프로필

두개 이상의 엑셀파일을 합치는 코드를 만드려고 합니다 HyeonJoon Jeong 13일 전

제목 그대로 다수의 엑셀 파일을 하나의 합치는 코드를 만드려고 합니다.

그런데 합치려고 하는 파일의 Line 수가 커서 그런지 아래와 같은 오류가 나타납니다.

해결할 수 있는 방법이 있을까요? ㅜㅜError Message

1
krb 프로필

authCheck 서버 연동 krb 14일 전

exe파일을 배포하고 이것을 관리하려면 서버에 연결해야 될 듯한데 어떤 원리로 연결되서 관리가 되는 건지 궁금합니다.

4
tomato 프로필

강의 소리가 두개 들립니다. tomato 23일 전

강의 소리가 두개가 겹쳐서 못듣겠어요 

파이썬 설치 및 개발 환경 설정(1) - 파이썬, 아나콘다, Git 설치

2
라빈느 프로필

인프런 추천강좌 에러 라빈느 24일 전

네이버는 문제 없이 잘 되는데 유독 인프런에서만 요소를 하나밖에 잡지 못하는 문제가 발생합니다.

https://www.inflearn.com/추천-강좌는 링크가 없어서

 https://www.inflearn.com/courses

에 있는 제목과 이미지를 가지고 따라해봤는데요.

(courses말고 인프런 메인에 있는 이미지로 해도 마찬가지로 안됩니다.)

from bs4 import BeautifulSoup
import urllib.request as req
import urllib.parse as rep
import os
import errno

# 인프런 이미지 검색
base = "https://www.inflearn.com/courses"
quote = rep.quote_plus("")
url = base + quote
# print(url)
res = req.urlopen(url)
savePath = "C:\\tutorials\python_2\imagedown\\"

try:
if not (os.path.isdir(savePath)):
os.makedirs(os.path.join(savePath))
except OSError as e:
if e.errno != errno.EEXIST:
print("폴더 만들기 실패!")
raise

soup = BeautifulSoup(res, "html.parser")
# print(soup)
img_list = soup.select("#courses_section")
print(img_list)

여기서 img_list = soup.select("")에 무엇을 넣던 첫번째 요소 즉, 노션(notion) 완벽 활용법만 나오고 끝이 납니다.

하다하다 안되니까 두번째 요소 남박사의 파이썬 실전 100% 활용을 그대로 copy selector 하니까 결과값이 [] 으로 나옵니다.

제 추측으로는 두번째 요소부터는 불러오는 방식이 다른 거 같은데 제가 뭘 잘못하고 있는 건가요?

2
이계윤 프로필

가상환경 활성화 시킬 때 이계윤 29일 전

LEEGYEYOONui-MacBook-Pro:cores gylee$ conda activate test1
LEEGYEYOONui-MacBook-Pro:cores gylee$ conda info --envs
# conda environments:
#
base                     /opt/anaconda3
test1                 *  /opt/anaconda3/envs/test1

LEEGYEYOONui-MacBook-Pro:cores gylee$ conda deactivate
LEEGYEYOONui-MacBook-Pro:cores gylee$ conda info --envs
# conda environments:
#
base                  *  /opt/anaconda3
test1                    /opt/anaconda3/envs/test1

LEEGYEYOONui-MacBook-Pro:cores gylee$ source activate test1
LEEGYEYOONui-MacBook-Pro:cores gylee$ conda info --envs
# conda environments:
#
base                     /opt/anaconda3
test1                 *  /opt/anaconda3/envs/test1

안녕하세요. 

아나콘다 가상환경 활성화할 때, * 상태를 보면 환경이 바뀌었다는 건 알 수 있는데 계정 앞에 (test1) 표시가 나타나지 않습니다. 

이전에 미니콘다 사용할 때는 가상환경 활성화 할 때 어떤 환경이 활성화되어있는지 표시가 됐었는데 이번에는 안되어서.. 혹시 어떤 문제인지 알려주실 수 있을까요? 

1
조신 프로필

a태그 값 가져오는 부분 질문 조신 29일 전

동일한 소스로 했는데 에이태그의 값만 (종목명)을 가져오는게 아니고 a태그 한 로우를 모두 가져 옵니다. <a> 부터 </a>까지

1
smile516 프로필

선택자 오류 smile516 1달 전

파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기 강좌에서

챕터3 강의에 3-4-의 소스에 관한 질문입니다.  아래의 코딩서 부터 error가 발생합니다.

article = soup.select_one("table:nth-of-type(3)").find_all('p')
#print(article)
for i in article:
if i.string is not None and i.img == None:
print(i.string)
Traceback (most recent call last):
  File "D:\workspace_big\3-4-1.py", line 32, in <module>
    article=soup.select_one("table:nth-of-type(3)").find_all('p')
AttributeError: 'NoneType' object has no attribute 'find_all'

스크레핑 하고 싶은 url은

https://market.ruliweb.com/read.htm?table=market_ngc&page=1&num=565967&find=&ftext=

입니다.

확인 문답 부탁드립니다


        

1
신의철 프로필

안녕하세요 좋은사람님. 신의철 1달 전

저번에 질문드린 내용은 잘 해결했습니다. 

class Main에 

sys._excepthook = sys.excepthook

    def exception_hook(exctype, value, traceback):

        print(exctype, value, traceback)

        sys._excepthook(exctype, value, traceback)

        sys.exit(1)

    sys.excepthook = exception_hook

를 넣으니깐 오류가 잘 나오더라구요. 다만 한가지 질문점이 생겼습니다. 

QThread에서 emit하는 부분에서의 질문인데요. 

저는 GUI에서 2개의 lineEdit에서 2가지 string을 입력받아서 

그 두개의 string을  thread에 emit하고 싶습니다. 

코드는 main에 

@pyqtSlot()

    def tab4(self):

        input_3 = self.lineEdit_5.text()

        input_4 = self.lineEdit_7.text()

        self.WorkerC = Worker3()

        self.sig_1.connect(self.WorkerC.ad_cam_name)

        self.sig_1.emit(input_3)

        self.sig_1.connect(self.WorkerC.product_netprofit)

        self.sig_1.emit(input_4)

        self.WorkerC.start()

        self.WorkerC.sig3.connect(self.append_profile)

        self.WorkerC.sig3_1.connect(self.crawl_adinfo)

worker에는 

class Worker3(QThread):

    sig3 = pyqtSignal(str)

    sig3_1 = pyqtSignal(str)



    def __init__(self, parent=None):

        QtCore.QThread.__init__(self, parent)



    def ad_cam_name(self, str):

        self.ad_campaign_name = str



    def product_netprofit(self, str):

        self.product_profit = str

이렇게 짜봤는데...ㅎㅎ thread에서 받는 결과는 항상 input4번만 받더라구요. 

그래서 짐작하기엔 emit을 저렇게 두번 쓰면 아래꺼만 인식되는건지 여기저기 많이 찾아봤는데 

해답을 잘 못찾겠습니다. ㅜㅜ  

두가지 emit을 하는 방법이 어떻게 되나요...?

1
페파 프로필

숙제는 풀이가 없나요? 페파 1달 전

안녕하세요,

이제 막 시작해서 열심히 공부하고 있습니다.

내주신 숙제에 대한 해답은 어디서 찾을수 있는지 궁금합니다.

감사합니다.

1
신의철 프로필

버튼을 클릭하면 프로그램이 꺼집니다 ㅜㅜ 신의철 1달 전

안녕하세요 강사님. 강의 정말 잘 봤습니다. 

개인적인 프로그램을 만들던 중 시작부터 막혔습니다. 

제가 원하는건 textEdit에 처진 글들은 프린트 하는 건데 

완료 버튼을 클릭하면 프로그램이 꺼져버립니다 ㅜㅜ 

어떠한 오류메세지도 안떠서 인터넷에서도 방법을 못 찾았습니다. 

코드는 아래와 같습니다.

두번째 pyqtSlot이 실행되면 바로 꺼져버립니다. 

첫번째 pyqtSlot에서는 프린트가 정상 작동했는데.. 혼란스럽습니다. 

그래서 Qdesigner 문제인가 싶어서 textEdit 을 painTextEdit로도 해봤었는데

둘다 같은 문제가 발생하고 lineEdit은 정상 작동하는데.. 여러 텍스트를 입력받아야 해서 lineEdit는

사용할 수 없습니다. 어떻게 해결할 수 있을까요? 

그리고 pyqt5를 쓰면서 한번도 에러 메세지가 안나오던데...나오게 하는 방법이 없나요?

프로그램이 꺼져도 뭐가 문제인지 모르니 해결하기가 어렵습니다 ㅜㅜ 

import sys, io
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5 import uic
from tag_test import Ui_MainWindow

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')

class Main(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.initSignal()

    def initSignal(self):
        self.pushButton_7.clicked.connect(self.inputAdinfo)
        self.pushButton_9.clicked.connect(self.inputKeyword)

    @pyqtSlot()
    def inputAdinfo(self):
        self.ad_productN = self.lineEdit.text()
        self.ad_camN = self.lineEdit_2.text()

    @pyqtSlot()
    def inputKeyword(self):
        self.Keywords = self.textEdit.text()
        print(self.Keywords)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Main()
    window.show()
    app.exec_()

2
pepcilia 프로필

name 'TK' is not defined 에러가 뜹니다. pepcilia 1달 전

그대로 치고 따라했는데 오류가 뜨네요.. 어찌해야할까요 ?

1
ㅇㅅㅇ 프로필

git 강제 pull 방법 알려주세요 ㅇㅅㅇ 1달 전

아톰 깃을 연동해 회사 집에서 잘 사용하다가회사에서pull 시도하니 잘안되서 강제로 pull을 하고 싶은데 git-plus 에서  어떤 명령을 날려야 될까요,?

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스