본문 바로가기
[py] 파이썬 실행파일 만들기 (ft. pyInstaller) GUI 없는 파이썬 실행파일 제작 폴더 생성 폴더 생성 후 python파일과, pyqt 파일 한 곳에 생성 pyinstaller 설치 1. pyinstaller 설치 pip install pyinstaller 2. 해당파일 pyinstaller 설치 pyinstaller -w -F 파이썬파일이름.py (-w:콘솔 없음, -F: 하나의 파일) GUI 포함시키는 실행파일 제작 1. .ui 파일의 절대경로를 찾을 수 있도록 코드 수정 2. pyinstaller -w -F 파이썬파일이름.py 코드 실행 3. .spec 파일 수정 4. pyintaller -w -F 파일썬파일이름.spec 저장 오류 발생: makespec options not valid when a .spec file is given 오류 발생 ..
[py] 네이버 오픈 api 지역 검색 예제 네이버 지역 검색 오픈 api 를 이용하여 지역 원하는 데이터를 수집합니다. 오픈 API 개발 문서 먼저 네이버에서 application을 만들고, client id와 client secret 키를 발급받아야 합니다. 개발문서를 보면서 요청 url과 파라미터, 사용 방법을 확인합니다. 네이버 오픈 api 불러오기 코드 import requests headers = { 'X-Naver-Client-Id': '클라이언트 아이디', 'X-Naver-Client-Secret': '클라이언트 시크릿 코드' } query = '세곡동 맛집' params = { 'query' : query, 'display':3, 'sort' : 'comment' } search_url = 'https://openapi.naver...
[py] 웹 이미지 저장 (ft. requests) 웹이미지 저장 이미지 주소를 복사하여 requests 라이브러리를 이용해 이미지를 저장합니다. #pip install requests 로 라이브러리 설치 #이미지 저장 import requests url = '이미지 url' #해당 url로 서버에게 요청 img_response = requests.get(url) #요청에 성공했다면 if img_response.status_code == 200: #200일 경우 정상 #print(img_response.content) print('이미지 저장') with open('text.jpg', 'wb') as fp: 결과 wb는 파일 모드를 지정 읽기(r), 쓰기(w), 수정(+), 텍스트파일(t), 바이너리 파일(b) 이미지 파일을 저장하고자 하는 것이기 때문에..
[py] 카카오 이미지 검색 오픈 api 카카오 오픈 이미지 검색 api 를 이용하여 원하는 이미지를 수집합니다. 카카오 이미지 검색 오픈 api 개발 문서 사이트 https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 오픈 API 개발 문서 오픈 API로 원하는 이미지 저장하기 #카카오 오픈 API 이미지 저장 import requests import json #img_url로 file_name 파일로 저장하기 def save_imgFn(img_url, file_name): ..
[py] 파일 읽기 쓰기 파이썬을 이용해 text 파일에 텍스트를 쓰고, 그것을 읽는 방법을 알아보겠습니다. 파일 쓰기 #파일 쓰기 data = 'hello' with open('text.txt', 'w') as fp: fp.write(data) 결과 작업 폴더 text.txt 파일이 생성되었고, 파일을 열면 hello라고 입력되었습니다. 파일읽기 #파일 읽기 with open('text.txt', 'r') as fp: print('파일 읽기') print(fp.read()) 결과
[py] 파일 입출력 자동화 구현 내용 텍스트 파일에 있는 텍스트를 그대로 불러와서 프린트 텍스트 파일에 입력하기 파일 입출력 자동화 코드 encoding='UTF8' 없을 경우, UnicodeDecodeError: 'cp949' codec can't decode byte 0xeb in position 0: illegal multibyte sequence 라는 오류가 발생 불러오기 open('불러올 파일경로', 'r', encoding='UTF8') 쓰기 open('저장할 파일 경로', 'w', encoding='utf-8') 구현 코드 //읽기 f = open('네이버_연관검색어.txt', 'r', encoding='UTF8') msg = f.read() print(msg) //쓰기 f = open('네이버_연관검색어.txt', ..
[py] 네이버 블로그 좋아요 자동화 (ft. 셀레니움 actionchains) 구현 내용 1. 셀레니움 라이브러리의 웹드라이버 크롬 실행 2. 네이버 자동 로그인 3. 네이버 블로그로 이동 (3~5번 무한 반복) 4. 최근 포스팅 클릭 5. 좋아요 클릭 actionchains 매크로 프로그램을 만들때 사용하는 pyautogui를 웹에서 작동할 수 있도록 물리적 기능을 지원하는 라이브러리 특정사이트가 자동화나 크롤링을 사전에 막아서 element의 click이 작동하지 않는다면 actionchains를 이용하여 물리적으로 실행 elements로 마우스 이동: ActionChains(driver).move_to_element(요소 변수) 주의 사항 실제 작동시에는 스팸 처리를 당하지 않기 위해 random 함수를 사용합니다. 구현 코드 from selenium import webdri..
[py] 사이트 로그인 방법 (ft. 보안 처리 유무) 구현 과정 셀레니움 라이브러리의 웹드라이버 크롬 실행 사이트 자동 로그인 실행 로그인 자동화(단순 로그인, 보안 처리 없음) id = driver.find_element(By.XPATH, 'id xpath') #xpath, css selector, id, class명 다양하게 사용 가능 id.click() id.send_keys('아이디') time.sleep(2) pw = driver.find_element(By.XPATH, 'pw xpath') pw.click() pw.send_keys('비번') time.sleep(2) pw.submit() time.sleep(10) 로그인 자동화(보안 처리 있음) send_keys(Keys.COMMAND, 'v') 를 위해 webdriver.common.keys ..
[py] 인스타그램 좋아요 자동화 구현 화면 구현 내용 인스타그램 로그인 후 '좋아요반사' 태그 페이지 호출 페이지 내 모든 게시물 클릭 후 세부 페이지에서 좋아요 후 닫기 아쉬운 점 현재 페이지에 9개의 피드가 올라와 9가지 좋아요 자동화가 가능하지만, 페이지네이션 부분이 안보여, 쿼리를 찾을 수 가 없어 다른 페이지로 이동처리를 하지 않음 클래스명이 자주 바뀌는 것 같음 구현 코드 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager #크롬 ..
[py] 네이버 블로그 이웃 추가 자동화 1, 2, 3단계에 걸친 네이버 블로그 이웃추가 자동화입니다. 구현내용 flow 네이버 로그인 자동화 모바일 페이지 검색후 뷰탭으로 이동 검색 옵션은 블로그, 최신순 쿼리 주소 첫번째 포스팅 블로그 아이디 클릭 이웃 추가 버튼 클릭(가능할때만 - 이미 이웃인 상태, 이웃 받지 않을 경우 불가능) 서로 이웃 버튼 클릭(서로 이웃 신청 받지 않을 경우 불가능) 이웃 신청 멘트 기존의 것 삭제 후 새로운 멘트 작성 확인 클릭 1단계 1명 자동으로 이웃 추가 2단계 처음 로딩된 페이지 내 모든 이웃 자동으로 이웃 추가 3단계 n명 만큼 자동으로 이웃 추가 1단계 try, except 구문으로 예외 처리하는 이유: (서로)이웃추가 금지로 이웃추가가 안되는 경우를 처리해야 함 이웃추가 버튼, 서로이웃추가 버튼 클릭..
[py] 파이썬 gui (ft. pyqt5 설치, 기본 세팅, Qt designer 설치) PyQt 파이썬 gui 라이브러리 Qt designer 설치 Qt designer는 PyQt 디자인 편집기 구글에서 qt desinger download 검색하여 다운로드 Mac 오류 해결 방법 개발자를 확인할 수 없기 때문에 열 수 없습니다. 알림창 해결 방법 - 시스템 환경설정 -> 보안 및 개인 정보 보호 - 다음에서 다운로드한 앱 허용 -> 확인 Qt designer 설치 후 화면이 이상할때 Preferences -> Appearance -> User Interface Mode -> Docked Window pyqt5 설치 pip install pyqt5 #window pip3 install pyqt5 #mac pyqt5 기본 세팅 from PyQt5.QtWidgets import * from P..
[py] 네이버 연관검색어 결과 크롤링 ajax를 이용한 네이버 자동검색 결과 크롤링 구현 내용 네이버 검색어 입력시 연관 검색어 리스트 크롤링 ajax를 호출하는 request url을 이용해 페이지 호출 검색어 + ㄱ ~ ㅎ까지 추출하여 메모장(.txt)에 저장 구현 코드 json.loads(data) 를 통해 딕셔너리 형태로 변환 import requests import json import pyautogui keyword = pyautogui.prompt('검색어를 입력하세요.') letters = ['ㄱ','ㄴ','ㄷ','ㄹ','ㅁ','ㅂ','ㅅ','ㅇ','ㅈ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ'] f = open(f'{keyword}.txt', 'w', encoding='utf-8') # 파일 열기 모드 w : 새로 만들기, a :..
[py] 크롤링 데이터 엑셀에 저장 예제는 스타트 코딩, 파이썬 크롤링 강의를 들으면서 공부한 내용입니다. 구현 내용 openpyxl 라이브러리 사용 네이버 주식정보의 3가지 종목 현재가 크롤링 현재가만 비워진 엑셀파일 미리 저장 크롤링 데이터 엑셀에 저장 적용 코드 import requests from bs4 import BeautifulSoup import openpyxl fpath = r'C:\project\python\practice\data.xlsx' #현재가만 비워진 미리 저장된 엑셀시트 wb = openpyxl.load_workbook(fpath) #엑셀 불러오기 ws = wb.active #현재 활성화된 기본 시트 # 종목코드리스트 codes = ['005930','000660', '035720'] row = 2 #행값을 돌..
[py] request 이용하여 웹 크롤링 예제 request를 라이브러리를 이용해 네이버 크롤링 예제입니다. 크롤링 주제: 네이버에 코딩하는 갓디노를 검색하여 나오는 데이터 크롤링 코드 import requests from bs4 import BeautifulSoup #print(response.status_code) #통신 응답 결과 200: 정상 404: 페이지 찾을 수 없음 pageNum = 1 for i in range (1, int(4* 10), 15): #총 4개의 페이지가 있고, i값이 1, 16, 31 순으로 진행 print(f' {pageNum} 페이지 -----------------------------------') response = requests.get(f'https://search.naver.com/search.naver?..
[py] 메일 자동화 발송 (ft. 셀레니움) 파이썬, 셀레니움을 이용한 네이버 메일 자동화 보내기 입니다. 예제는 스타트 코딩, 파이썬 크롤링 강의를 들으면서 공부한 내용입니다. 네이버 메일 자동화 보내기 코드 본문인 body 부분이 iframe 태그에 쌓여있기 때문에 iframe 태그 내부에 들어가서 본문을 작성 후 다시 iframe 나가는 별도의 코드가 필요 #셀레니움 기본설정 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager #크롬 드라이버 자동 ..
[py] 이미지 사이즈 줄이기 파이썬을 이용하여 이미지 사이즈를 일괄 수정하는 방법입니다. 예제는 스타트 코딩, 파이썬 크롤링 강의를 들으면서 공부한 내용입니다. 이미지 조정 라이브러리 pillow pip install pillow #이미지 처리 라이브러리 이미지 사이즈 조정 코드 이미지 열때, 저장할때 경로가 필요합니다. import os from PIL import Image # 정리할 확장자 리스트 extention_list = ['.jpg', '.png', '.gif'] #해당 이미지 폴더 target = 'C:/project/python/랜덤이미지' #만들 폴더 destination = os.path.join(target, 'small') #폴더가 없다면 폴더 생성 if not os.path.exists(destination..
[py] 파이썬 랜덤 이미지 생성 파이썬을 이용한 랜덤 이미지 100개를 자동 생성입니다. 구현 화면 랜덤이미지 만들기 라이브러리 numpy pip insall pandas #pandas 설치하면 numpy가 같이 설치 됨 pillow pip install pillow #이미지 처리 라이브러리 랜덤이미지 생성 코드 import numpy from PIL import Image import os #만들 폴더 경로 target = 'C:/project/python/랜덤이미지' #폴더 만들기 if not os.path.exists(target): os.mkdir(target) for i in range(0, 101): filename = f'img{i}.jpg' #3차원 rgb 랜덤 배열 생성 rgb_array = numpy.random.ra..
[py] 파일 및 폴더 정리하기 예제는 스타트 코딩, 파이썬 크롤링 강의를 들으면서 공부한 내용입니다. os 라이브러리 os라는 라이브러리를 사용하고, 내부 저장된 라이브러리로 별도 설치 필요 없습니다. import os 폴더 생성, 폴더 내 파일 출력, 파일 확장자 출력 import os # 폴더 만들기 - 상대 경로 이동 os.mkdir('test1') # 폴더 만들기 - 상대 경로2 이동 os.mkdir('폴더이름/test2') # 폴더 만들기 - 절대 경로 이동 os.mkdir('C:/project/python/test2') # 파일 오른쪽 마우스 속성 > 위치 복사 -> 붙여넣기 후 역슬래시 슬래시로 바꿔주기 os.mkdir('C:/Users/PC CAFE/Downloads/images') # 폴더가 없을때만 만들기 if no..
[py] 파이썬 마우스 조작, 키보드 조작 (ft. pyautogui) pyautogui 설치 파이썬 마우스 키보드 조작 라이브러리 pip install pyautogui # mac은 pip 대신 pip3 마우스 좌표 찾기 import pyautogui pyautogui.mouseInfo() # 좌표 찾은 후 F2 단축키로 복사 마우스 자동화 import pyautogui import time # 화면 크기 출력 print(pyautogui.size()) # 마우스 위치 출력 time.sleep(2) print(pyautogui.position()) # 마우스 위치 이동 # mac = 손 쉬운 사용 vscode 권한 설정 # 한번에 이동 pyautogui.moveTo(1900, 50) # a초 동안 이동 pyautogui.moveTo(388,19,2) # 마우스 클릭 pya..
[py] 파이썬 반복문 예제 (ft. for문, while문) 예제는 스타트 코딩, 파이썬 크롤링 강의를 들으면서 공부한 내용입니다. for문 list 예제 num_lists = [1,2,3,4] for i in num_lists: print(i*2) //2 //4 //6 //8 range 예제 gugudan = int(input('몇단을 출력할까요?? >>>')) for i in range(0, 10, 1): print(f'{gugudan}x{i}={gugudan*i}') 결과 while문 i = 1 //초기식 while i chosenNum: print('정답은 더 작습니다.') elif num < chosenNum: print('정답은 더 큽니다.') count +=1 결과
[py] 네이버 로그인 자동화 (ft. 셀레니움) 셀레니움을 이용한 네이버 로그인 자동화 구현 입니다. 예제는 스타트 코딩, 이것이 진짜 크롤링이다 기본편 강의를 들으면서 공부한 내용입니다. 구현 화면 자동입력 방지 문자 알림 해결 id.send_keys('네이버 아이디'), pw.send_keys('네이버 비밀번호') 코드 사용하면 너무 빨리 입력이 되면서 네이버에서 감지하여 아래와 같은 오류 알림 화면으로 이동됩니다. 이를 해결하기 위해, 사람이 직접 입력한 것과 같은 코드로 변경해줘야 합니다. pyperclip.copy('입력어') pyautogui.hotkey('ctrl', 'v') //입력어 붙여넣기로 #id.send_keys('입력어')와 같음 time.sleep(2) //2초 딜레이 네이버 로그인 자동화 #셀레니움 기본설정 from sele..
[py] 셀레니움 기본 설정 셀레니움 작업시 필요한 기본 설정 코드입니다. 셀레니움 설치된 버전 확인 pip list # 결과창에서 selenium 찾기 mac은 pip 대신 pip3 셀레니움 설치 pip install selenium #window pip3 install selenium #mac 셀레니움 4로 업데이트 #window pip install --upgrade pip pip install --upgrade selenium #mac pip3 install --upgrade pip pip3 install --upgrade selenium 크롬 드라이버 자동 업데이트 코드 pip install webdriver_manager #window pip3 install webdriver_manager #mac 브라우저 꺼짐 방지 코..
[py] 네이버 상품 목록 크롤링 해오기 (ft. 셀레니움, csv로 옮기기) 셀레니움을 이용한 동적사이트 데이터 csv로 가져오기 예제는 스타트 코딩, 이것이 진짜 크롤링이다 기본편 강의를 들으면서 공부한 내용입니다. 구현 화면 mac - 여러페이지 크롤링 mac- 단일 페이지 크롤링 window requests의 한계 로그인이 필요한 경우, 세션처리하는 것으로 크롤링이 어려움 동적으로 html을 만드는 경우 크롤링이 어려움 동적으로 html을 만드는 경우 v 스크롤 하거나 클릭하면 데이터가 생성됨 v url 주소가 그대로 인데 데이터가 변경되었을 경우임 v 표나 테이블 형태의 데이터 셀레니움 웹 어플리케이션 테스트를 위한 도구 브라우저를 실제로 띄워서 사람처럼 동작하도록 만들 수 있음 셀레니움 설치 크롬 드라이버 설치 셀레니움 설치 #window pip install selen..
[py] ModuleNotFoundError: No module named 'selenium' selenium 설치 후 에러 대응 No module named 'selenium' 오류 셀레니움 라이브러리를 사용하기 위해서 먼저 필요한 두가지 조건이 선행되어야 합니다. 구글 드라이버 설치 pip install selenium 명령어로 셀레니움 라이브러리 설치 위의 두가지를 실행하고도 selenium 모듈을 찾을 수 없다는 에러와 입력한 코드 from selenium import webdriver의 selenium과 webdriver에 노란색 물결 밑줄이 쳐져있었습니다. 해결방법 vs code 하단의 python 버전 부분을 선택하여, 버전을 변경해 주었습니다. 기존의 추천, Python 3.10.7 64-bit 버전에서 글로벌 Python 3.8.5 64-bit로 변경을 하였더니 에러가 사라지면서 ..
[py] 크롤링한 데이터 엑셀 저장, 수정 파이썬의 openpyxl 라이브러리를 이용하여 데이터를 엑셀에 저장/수정을 해보겠습니다. openpyxl 라이브러리 파이썬에서 엑셀을 다를 수 있게 도와주는 라이브러리 자세한 사용방법은 공식 문서 참조 openpyxl 설치 방법 pip install openpyxl 파이썬으로 데이터 엑셀 저장하기 import openpyxl # 엑셀만들기 wb = openpyxl.Workbook() #엑셀 워크시트 만들기 ws = wb.create_sheet('example') #데이터 추가하기 ws['A1'] = '번호' ws['B1'] = '이름' ws['A2'] = 1 #행열에 맞추어 대가로 안에 ws['B2'] = '까를로스' #엑셀파일 저장하기 #save(상대경로 또는 절대경로) #앞에 r을 붙여주어 백슬래시를..
[py] 네이버 뉴스 타이틀, url 크롤링 네이버 뉴스의 특정 검색어를 여러페이지에 걸쳐 제목과 링크를 크롤링합니다. 예제는 스타트 코딩, 파이썬 크롤링 강의를 들으면서 공부한 내용입니다. 인터넷 주소 형식 Protocol - Domain - Path - Parameter Protocol : 더블 슬래쉬 전, http 또는 https Doamin: 더블 슬래쉬와 다음 슬래쉬 사이 구간, ip주소에 이름을 준것 Path: 다음 슬래쉬와 물음표 사이 구간, 서버에서 해당 페이지의 경로 Parameter: 물음표 뒤 구간, 크롤링에서 가장 중요한 부분, key와 value로 구성, &로 구분 검색어를 입력 받은 뒤 query={입력어}를 변경해주면 됨 라이브러리 설치 확인 pip list beautifulsoup4 , requests 패키지 설치 Re..
반응형