일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파이썬네이버부동산
- 날짜 정규식
- selenium
- 파이썬 네이버 로그인
- 커머스API
- vscode venv 설치
- 네이버매물크롤링
- 왕초보 파이썬 실행
- pycdas.exe
- pywinauto 윈도우
- 네이버 로그인 영수증 해결
- Element is not clickable at point
- pywinauto
- 파이썬 환경설정
- 네이버 로그인 캡챠해결
- Uipath 설치방법
- 파이썬 가상환경 설치
- 네이버부동산크롤링
- pywinauto 윈도우제어
- 파이썬 가상환경 설치방법
- 가상환경설치
- uipath 입문
- pycdc.exe
- Selenium 셀렉터잡기
- 네이버 로그인 하기
- UiPath
- Python
- 네이버커머스API
- Uipath 기초
- venv 설치
- Today
- Total
목록전체 글 (383)
콘솔워크
=SUM(A2:INDIRECT(ADDRESS(ROW(), COLUMN() - 1)))ADDRESS 함수는 텍스트 형식의 셀 주소를 반환하므로, 이를 직접 SUM 함수에 사용할 수는 없습니다. 대신, INDIRECT 함수를 사용하여 ADDRESS가 반환한 텍스트 주소를 실제 셀 참조로 변환할 수 있습니다.다음 수식을 사용하여 현재 셀의 왼쪽에 있는 모든 셀의 합계를 계산할 수 있습니다:excel코드 복사=SUM(A2:INDIRECT(ADDRESS(ROW(), COLUMN() - 1)))이 수식의 동작 방식은 다음과 같습니다:ADDRESS(ROW(), COLUMN() - 1)는 현재 셀의 왼쪽 셀의 주소를 텍스트 형식으로 반환합니다.INDIRECT 함수는 이 텍스트 주소를 실제 셀 참조로 변환합니다.SUM ..
셀레니움 개발하다가 어느 순간부터 개발자도구에서 이것저것 테스트해봐야하는데복사 붙여넣기가 안되었다. 하나씩 타이핑 하다가 결국 하는 방법을 찾아냈다. 개발자도구에 allow pasting 이라는 명령어를 입력해주면 된다. 그 다음 부터는 잘됨.
import openpyxlfrom openpyxl.styles import PatternFillclass CompareExcel: def __init__(self, file_a, file_b, key_column, compare_columns): self.file_a = file_a self.file_b = file_b self.key_column = key_column self.compare_columns = compare_columns self.wb1 = None self.wb2 = None self.ws1 = None self.ws2 = None self.yellow_fill = ..
컴파일러 스크립트 예시 한글추가 [Languages] Name: "korean"; MessagesFile: "compiler:Languages\Korean.isl" Name: "english"; MessagesFile: "compiler:Default.isl" 한글추가경로 C:\Program Files (x86)\Inno Setup 6\Languages
def add_columns_if_missing(file_path, column_names): # 엑셀 파일 열기 workbook = openpyxl.load_workbook(file_path) sheet = workbook.active # 헤더로 사용될 첫 번째 행에서 모든 컬럼 이름 가져오기 headers = [cell.value for cell in sheet[1]] # 1행의 모든 셀 값을 리스트로 저장 # 현재 헤더에 몇 개의 컬럼이 있는지 확인 current_max_column = len(headers) print("current_max_column", current_max_column) # 주어진 컬럼 이름들 중 누락된 것이 있는지 확인하고 추가 for column_name in column..
import re def generate_fjgyno(address, admin_code, is_mountain=False): # 필지구분 (산인 경우 2, 일반인 경우 1) parcel_type = "2" if is_mountain else "1" # 정규식 패턴을 사용하여 본번과 부번 추출 pattern = r"(\d+)(?:-(\d+))?" # 숫자-숫자 패턴 (부번은 옵셔널) match = re.search(pattern, address) if match: bonbun = match.group(1).zfill(4) # 본번 (4자리로 패딩) bunbun = match.group(2).zfill(4) if match.group(2) else "0000" # 부번 (부번이 없는 경우 0000) els..
지난 시간에 네이버에 아이디, 비밀번호 입력 후 [로그인] 버튼을 누르면 네이버 영수증 캡챠가 발생되어 로그인에 실패하였습니다. 이 부분을 해결해보겠습니다. 네이버영수증캡챠해결 네이버 영수증 캡차를 해결하기 위해서는 클립보드 입력 방식으로 바꿔야합니다. 보통 input 박스에 값을 입력할때 키보드로 직접 타이핑하는 경우도 있지만 우리는 [Ctrl + C], [Ctrl +V] 버튼을 통해 값을 입력하기도 합니다. 자동화 프로그램도 클립보드 입력 방법으로 아이디와 패스워드을 입력해보겠습니다. 먼저, 터미널에서 클립보드를 사용하기위한 라이브러리를 설치합니다. pip install pyperclip pyperclip을 사용하는 방법은 간단합니다. 아래와 같이 copy 함수에 클립보드에 복사할 내용을 넣어주시면 ..
7. 왕초보를 위한 파이썬 웹 자동화 프로그램 - 네이버 로그인 하기2 지난 시간 만든 코드입니다. 아래 코드에 이어서 패스워드 입력과 로그인 버튼 클릭까지 해보겠습니다. import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() # 1. chrome 브라우저를 열어줘 driver.get( "https://nid.naver.com/nidlogin.login" ) # 2. https://nid.naver.com/nidlogin.login 화면으로 이동해줘 driver.find_..
6. 왕초보를 위한 파이썬 웹 자동화 프로그램 - 네이버 로그인 하기1 새 파일 만들기 (naver_login.py) naver_login.py라는 이름의 파일을 생성합니다. 지난 시간에 배운 naver_search.py 코드를 복사하여 화면 이동하는 부분까지 붙여넣습니다. import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() # 1. chrome 브라우저를 열어줘 driver.get("https://naver.com") # 2. https://naver.com 화면으로..
5. 왕초보를 위한 파이썬 웹 자동화 프로그램 - 네이버 검색결과 추출하기 네이버에 검색하여 검색결과 가져오기 이번 시간에는 브라우저를 띄우고 네이버 페이지에 접속하여, 검색결과를 출력해보는 시간을 가져볼 것입니다. 오늘부터 매우 재밌어지실 것입니다. 셀리니움 설치 웹 페이지 자동화를 위해서는 selenium 이라는 패키지를 설치해야 합니다. 지난 시간에 selenium을 설치하신 분은 하지 않으셔도 됩니다. pip install selenium 지난 시간에 이어서 우리는 가상환경 venv에 이어서 설치할 예정이니, 가상환경 만드는법을 알고싶은 분은 아래 링크를 참조해주세요. 가상환경만들기 https://uipath.tistory.com/396 4. 왕초보를 위한 파이썬 웹 자동화 프로그램 - 가상환경만..
4. 왕초보를 위한 파이썬 웹 자동화 프로그램 - 가상환경만들기 파이썬 가상환경을 사용하는 이유 프로젝트를 진행하다보면 다른 사람이 만들어놓은 파이썬 코드 묶음을 가져다 쓰는 일이 생깁니다. 이것을 프로그램 세계에서는 패키지 라고 부릅니다. 프로젝트마다 사용하는 패키지가 다르기 때문에, 프로젝트에 파이썬 가상환경을 만들고 시작하는 것을 알려드리겠습니다. 우리는 가상환경을 만드는 방법 중에 " venv"를 사용할 것입니다. 파이썬 가상환경 만들기 현재 디렉토리에 가상 환경을 만드려면 다음과 같은 명령어를 입력하면 됩니다. python -m venv /path/to/directory 우리는 가상환경 폴더명을 "venv"로 하겠습니다. [터미널 - 새 터미널]을 클릭합니다. 하단에 터미널이 생성되면 터미널에 ..
3. 왕초보를 위한 파이썬 웹 자동화 프로그램 - 파이썬 실행 VScode 도구를 이용하여 파이썬을 실행해보겠습니다. 여러분들의 첫번째 프로그램이 될 수 있습니다. 역사적인 날입니다. 매우 간단합니다. 잘 따라오세요. 1. 새로운 .py 파일 만들기 2. print하여 hello world 출력해보기 1. 새로운 .py 파일 만들기 VSCode 새로운 파일 만들기 버튼을 클릭합니다. hello.py를 입력하고 엔터를 누릅니다. hello.py 파일이 표시됩니다. 2. Hello world 출력해보기 print('hello world') 표시된 화면에 print('hello world')를 입력해봅니다. [실행 - 디버깅 시작] 을 누릅니다. (단축키 F5를 눌러도 동일합니다.) [Python] 을 선택합..
FastAPI로 간단한 API 서버를 만들었다. 그런데 요청이 올때마다 200 응답한번, 307응답 한번씩 두번 요청되었다. 원인은 엔드포인트에 있었다. 앤드포인트를 만들때 뒤에 항상 "/"를 붙여줬는데 이걸 빼주면 된다. 변경 전 변경 후 앤드포인트 제거 후에는 307 Redirect 에러가 더 이상 발생하지 않았다.
2. 왕초보를 위한 파이썬 웹 자동화 프로그램 - 환경설정 . 파이썬을 사용하려면 아래의 준비과정이 필요합니다. 이 과정은 Window PC를 사용하시는 분들을 기준으로 예시를 보여드립니다. 1. 파이썬 설치 2. Visual Studio Code 설치 3. Visual Studio Code 에 Python Extension 설치 1. 파이썬 설치 https://www.python.org/downloads/ 링크에 접속하여 [Download Python 3.12.2] 버튼을 클릭합니다. 다운받은 파일을 실행합니다. (python-3.12.2-amd64.exe) Add python.exe to PATH 체크 후 Install Now 버튼을 클릭합니다. 진행사항을 기다립니다. 설치가 완료되었습니다. 2. V..
cmd가 아닌 powershell이라면 activate.bat이 아니라 activate.ps1를 실행해야 한다 근데 에러가 발생한다 \activate.ps1 : 이 시스템에서 스크립트를 실행할 수 없으므로 \venv\Scripts\activate.ps1 파일을 로드할 수 없습니다. Poweshell 관리자 모드로 실행 후, 아래 커맨드를 실행합니다. Set-ExecutionPolicy Unrestricted 아래 커맨드로 설정값을 확인해볼 수 있다 Get-ExecutionPolicy 다시 activate.ps1을 실행하면 venv 가 잘 실행됨을 확인할 수 있다
1. 왕초보를 위한 파이썬 웹 자동화 프로그램 - 개요 글쓰기에 앞서 안녕하세요. 저는 크몽에서 RPA고수로 활동하고 있고, 현재는 업무자동화 프로그램 전문 개발업체 콘솔워크를 운영하고 있는 김범관입니다. 시중에는 파이썬을 활용하여 자동화 프로그램을 만드는 방법을 알려주는 책들이 많이 있습니다. 다행히 최근 트렌드는 이론중심이 아닌 실무를 중심으로 설명되어 있는 책들이 많아 초보자들도 쉽게 따라 할 수 있도록 되어있습니다. 저 또한 이론보다는 실무를 경험하면서 이론을 학습하는 것을 선호합니다. 하지만 이 책들을 보면서 아쉬운 점이 있었습니다. 실제로 자동화 개발에 필요한 핵심기술은 2가지 입니다. 하지만 시중의 책에는 이 두 가지 개념에 대한 설명이 부족하고 또 이 핵심 기술을 제대로 사용하지 않고 그저..
현재년도를 기준으로 과거 5년, 미래 5년에 대한 10개 콤보박스를 구현해보았다. self.year_select_combobox = QComboBox() current_year = datetime.now().year past_years = [str(current_year - i) for i in range(5, 0, -1)] future_years = [str(current_year + i) for i in range(1, 6)] year_list = past_years + [str(current_year)] + future_years self.year_select_combobox.addItems(year_list) self.year_select_combobox.setCurrentText(str(date..
import pandas as pd from datetime import datetime import os import shutil from pathlib import Path def copy_file(file_path): file_name = Path(file_path).stem now = datetime.now() str_now = now.strftime("%Y%m%d%H%M%S") config = ProgramConfig() destination_path = os.path.join( "output", f"{file_name}_{str_now}.xlsx" ) shutil.copy(file_path, destination_path) return destination_path Path 함수를 활용해서 파..
xpath를 이용해서 검색 가능한 키워드중 "ancestor"를 활용하면 부모들을 대상으로 검색대상을 지정할 수 있다. remove_target = driver.find_element(By.XPATH, '//tr[./td[4]//span[text()="품절"]]//td[12]//i') target_tr = remove_target.find_element(By.XPATH, ".//ancestor::tr") target_order_code = target_tr.find_element(By.CSS_SELECTOR, "td:nth-child(1)").get_attribute( "textContent" ) 위의 코드는 remove_target의 부모들 중 가장 가까운 tr 태그를 찾는 함수이다.
최근 네이버 매물 수집 로직이 바뀌었습니다. 이에, 코드를 수정하였습니다. 새롭게 바뀐 로직이 반영된 프로그램 원하시면 여기서 확인 가능합니다. https://consolework.com/shop_view/?idx=15 N사 부동산 크롤링 N사 부동산 매물 수집 consolework.com 자세한 사항은 댓글 또는 카카오톡 1:1 링크로 문의 남겨주세요. https://open.kakao.com/o/sqAplEke
1. 원격 데스크톱 허용 설정 2. 원격데스크톱 컴퓨터의 해상도 변경 안되게 막기 윈도우를 사용하다 종종 해상도 설정 변경되어 다시 바꾸기 귀찮을 때가 있다. 그럴 때 레지스트리 수정 및 추가해서 강제로 해상도를 고정해 줄 수 있다.(※윈도우 업데이트로 인해 설정한 레지스트리가 삭제될 수 있음) 레지스트리를 이용해 해상도 강제 고정 시키는 방법 해상도 고정 Window키 + R 또는 Window키를 눌러 regedit를 입력 후 실행 시켜준다. 레지스트리가 실행 되면 아래 이미지와 같이 경로로 이동해준다 컴퓨터\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration 들어갔다면 'Configuration' 폴더 중 ..
Windows10 원격 데스크탑 연결시 아래와 같이 '사용자 계정 제한(예: 사용 시간 제한) 때문에 로그인할 수 없습니다. 도움이 필요하면 시스템 관리자나 기술 지원 서비스에 문의하십시오.' 오류가 발생한다. 이 경우는 연결하고자 하는 PC의 암호를 설정하지 않는 경우로 아래와 같이 빈 암호 제한 여부를 '사용안함'으로 지정하면 해결 된다. *로컬 그룹 정책 편집기는 Window키+R -> gpedit.msc 입력 후 진입할 수 있습니다.
import pandas as pd execel = r"C:\excels\yuhan_retry.xlsx" df_for_upload = pd.read_excel(execel) df_for_upload = df_for_upload.fillna("") df_for_upload.loc[df_for_upload["A"] != "", "B"] = "" print(df_for_upload) df_for_upload.to_excel("test.xlsx") A 컬럼의 값이 존재하는 경우 B 컬럼의 데이터를 지우는 코드이다.
전체코드는 다음과같다. if 1 == 1: import sys import os sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) import time from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from selenium.webdriver.chrome.options import Options import time from selenium.webdriver.chrome.options import Options from selenium import webdriver import os f..
//span[contains(translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '옐로우')]
일단 기본적으로 pywinsparkle 라이브러리( https://pypi.org/project/pywinsparkle/)는 2023.10.06일 기준으로 오류가 발생한다. pip install pywinsparkle 위의 것으로 설치를 하면 설치가 안된다. pypi에 제대로 등록이 안되어있나보다. ERROR: Could not find a version that satisfies the requirement pywinsparkle (from versions: none) ERROR: No matching distribution found for pywinsparkle (venv) PS C:\consolework\resellmaster-agent> pip instal 위에는 무시하시고 아래 부터 따라하시면..
chromedriver_autoinstaller 가 더이상 동작하지 않는다. 그래서 새로운 라이브러리를 찾아보던중 발견하였다. pip install get_chrome_driver 위의 패키지를 설치하면 끝이다. import time from get_chrome_driver import GetChromeDriver from selenium import webdriver # Install the driver: # Downloads ChromeDriver for the installed Chrome version on the machine # Adds the downloaded ChromeDriver to path get_driver = GetChromeDriver() get_driver.install() ..
preceding-sibling 앞 following-sibling 뒤 을 사용하면 바로 옆에있는 태그에 접근할 수 있다. state_select = Select(driver.find_element(By.XPATH, '//th[text()="상세조건"]/following-sibling::td[1]//select')) driver.find_element(By.XPATH, '//th[text()="상세조건"]/following-sibling::td[1]//select') 바로 앞에 있는 것을 찾으려면 preceding-sibling 을 쓰면된다.
pip install pdfkit 해당 라이브러리를 windows 환경에서 사용하기 위해서는 사전에 wkhtmltopdf를 설치해야 합니다. https://wkhtmltopdf.org/downloads.html wkhtmltopdf All downloads are currently hosted via GitHub releases, so you can browse for a specific download or use the links below. Do not use wkhtmltopdf with any untrusted HTML – be sure to sanitize any user-supplied HTML/JS, otherwise it can lead to complete ta wkhtmltopdf.o..
[개요] pyinstaller는 python 코드를 배포하기 위해 실행파일 (exe)로 만들어주는 편리한 패키지이다. 패키지 다운로드 pip install pyinstaller 실행파일 생성 pyinstaller -n "파일이름" -w --onefile --clean "main.py" --icon "아이콘.ico" 패키지를 받은 후, 위 명령어를 입력하는 방식으로 자주 사용하고있다. --onefile 옵션을 추가하는 것으로 프로그램이 하나의 exe 파일에 정리되어서 배포에도 아주 편리하고, 사용자 입장에서도 좋다. 이렇게 생성한 exe 파일은 대부분의 환경에서 잘 작동하지만, 몇몇 PC에서 해당 파일을 Trojan 바이러스로 인식하여 Window Defender에서 자동으로 삭제하는 문제가 있다. 물론 ..