일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 네이버 로그인 영수증 해결
- UiPath
- 네이버 로그인 캡챠해결
- 파이썬 환경설정
- uipath 입문
- pycdc.exe
- venv 설치
- pywinauto
- 네이버커머스API
- selenium
- Uipath 기초
- 왕초보 파이썬 실행
- 커머스API
- 파이썬 네이버 로그인
- vscode venv 설치
- Uipath 설치방법
- pywinauto 윈도우
- 파이썬네이버부동산
- 파이썬 가상환경 설치
- 가상환경설치
- pycdas.exe
- Element is not clickable at point
- 네이버매물크롤링
- 날짜 정규식
- 파이썬 가상환경 설치방법
- 네이버부동산크롤링
- pywinauto 윈도우제어
- 네이버 로그인 하기
- Selenium 셀렉터잡기
- Python
- Today
- Total
목록전체 글 (384)
콘솔워크

https://uipath.tistory.com/134 [Python] 구글 드라이브 API 연결해보기 https://uipath.tistory.com/133 [Python] 구글 드라이브 API 초기설정 https://console.cloud.google.com/ Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 구글 클라우드.. uipath.tistory.com 위 링크의 설정이 필요합니다. 구글드라이브에 폴더를 생성하는 코드입니다. from Google import Create_Service CLIENT_SECRET_FILE = 'client_secret.json' # 초기설정 json파일 이름 API_NAME = 'drive' API_VE..

https://uipath.tistory.com/133 [Python] 구글 드라이브 API 초기설정 https://console.cloud.google.com/ Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 구글 클라우드 플랫폼에 로그인합니다. 새 프로젝트를 작성합니다. 프로젝트 이름을.. uipath.tistory.com 해당 포스팅을 사용하기 위해 초기설정이 필요합니다. 임의의 프로젝트를 생성하고 구글에 연결하기 위해 사용될 Google.py 파일을 작성합니다. import pickle import os from google_auth_oauthlib.flow import Flow, InstalledAppFlow from googleapi..

https://console.cloud.google.com/ Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 구글 클라우드 플랫폼에 로그인합니다. 새 프로젝트를 작성합니다. 프로젝트 이름을 설정하고 만들어줍니다. 프로젝트 작성 후 좌측 메뉴의 'API 및 서비스'에서 라이브러리를 클릭해줍니다. 라이브러리에서 google drive api를 검색해 사용하기를 누릅니다. 'API 및 서비스' 탭의 사용자 인증 정보 만들기를 클릭하고 OAuth 클라이언트 ID를 선택합니다. 프로젝트를 처음 작성한 상태라면 'OAuth 클라이언트 ID' 선택 시 OAuth 동의 화면이 나타납니다. User Type은 선택하지 않고 만들기를 누릅니다. 필수적으로 작성하..
Dictionary to Json (in Python) json_val = json.dumps(dict1) Json to Dictionary (in Python) dict2 = json.loads(json_val) Json to Str (in Python) json_str = json.dumps(json_val)

이 글은 https://jangminhyeok.tistory.com/9 을 참고로 만든 글입니다. 저는 이 글을 따라하다가, AWS 설정 부분을 잘못하여 삽질을 하루동안 하였습니다. 여기 글이 매우 잘 정리되어있어서 저에게는 정말 큰 행운이었습니다. 좋은글 써주셔서 진심으로 감사드립니다. PyQt5를 단일 exe 실행파일로 만드려는 목적 기준입니다. PyQt5 기반으로 GUI 프로그램을 구현하고, PyInstaller를 활용하여 단일 실행파일로 만들 수 있습니다. exe 파일 하나만 공유하면 되기 때문에 정말 간편하다보니 많이 사용되는 방법입니다. ① PyInstaller로 단일 exe 실행파일을 만들고 싶다. ② main 코드에서 버전 체크 및 업그레이드를 자동으로 해줬으면 좋겠다. ③ AWS S3나 ..

해당 솔루션 개발에 몇가지 조건이 있었는데, 크게 다음 두가지가 가장 중요했다. 파이썬으로 개발하고, 독립실행이 가능할 것 여타 프로그램처럼 새로운 버전이 릴리즈되면 자동으로 업데이트될 것 우선 첫번째 조건은 pyinstaller를 이용했기 때문에 큰 문제는 없던 것 같다. 내 경우에는 2번이 문제였는데, 사내에 별도의 업데이트 서버를 두지 않고 업데이트를 진행하는게 목표였기 때문에 여러가지 방법을 고민했던 것 같다. 내가 찾은 해결책은 다음과 같다. pyinstaller를 이용해 메인 프로그램 빌드 github REST API를 이용하여 업데이트를 체크하는 파이썬 코드 작성 pyinstaller를 이용해 업데이트 체커 빌드 이렇게 하면 별도의 업데이트 서버 없이, 인터넷만 연결되어 있으면 업데이트를 진..

출처: https://zbaekhk.blogspot.com/2021/04/pyinstaller.html [Pyinstaller] 실행 파일 관리자 권한 획득하기 zbaekhk.blogspot.com WinSparkle 설치 WinSparkle에서는 아래 언어에 대한 바인딩을 지원합니다. C#/.NET, Python, Go, Pascal Python 바인딩인 pywinsparkle을 설치합니다. pip install pywinsparkle XML 파일로 버전 관리 이제 자동 업데이트 정보를 XML 파일에 저장하여 서버에 올려놓으면 프로그램 실행 시(구현에 따라 다름)에 최신 버전으로 자동 업데이트할 수 있습니다. 아래는 XML 파일 예제입니다. 여기서 중요한 부분은 릴리즈 노트(sparkle:relea..
이상하게, pyinstaller를 이용하여 exe로 말면 잘되던 google-cloud-vision이 먹통 된다. 해결 방법 1. pyinstaller 빌드 자체가 안될 때 pip install google-cloud-core 를 설치한다. 2. hooks 폴더를 만들고, 그 안에 hook-google.cloud.vision.py 파일 생성 후 from PyInstaller.utils.hooks import copy_metadata, collect_data_files datas = copy_metadata('google-cloud-vision') datas += copy_metadata('google-cloud-core') datas += copy_metadata('google-api-core') dat..
in _load_hook_module self._hook_module = importlib_load_source( File "C:\Users\username\AppData\Local\Programs\Python\Python39\lib\site-packages\PyInstaller\compat.py", line 632, in importlib_load_source return mod_loader.load_module() File "", line 529, in _check_name_wrapper File "", line 1029, in load_module File "", line 854, in load_module File "", line 274, in _load_module_shim File "", li..
query 변수에는 포함시키고 싶은 문자열 입력 tag_name에는 원하는 태그 입력. 태그명 모를경우에는 "*" 와일드 카드 입력 query = '네이버' tag_name = 'span' document.querySelectorAll(tag_name).forEach((el)=>{ if(el.textContent.includes(query) && el.childElementCount === 0){ el.click(); } });

예를들어 aa.py에서 sub2에 있는 cc.py을 참조하는 방법은 두 가지가 있습니다.프로젝트구조 다른 모듈 참조 # aa.py를 참조할 경우 from sub1 import aa # ff.py를 참조할 경우 import ff # 또는 from . import ff # from . 은 동일폴더라는 의미를 나타냄. 상위 폴더 내 파일 참조 예를들어 aa.py에서 sub2에 있는 cc.py을 참조하는 방법은 두 가지가 있습니다. 1. 부모폴더의 절대경로를 참조 path에 추가 어플리케이션이 기동되는 가장 첫부분에 import에 아래와 같은 코드를 추가하면 문제는 해결됩니다. # aa.py import os import sys sys.path.append(os.path.dirname(os.path.abspat..
특정 컬럼의 중복된 로우만 가져오기 ( From row In [데이터테이블명] Group row By a = row([컬럼명]).Tostring Into grp = Group Where grp.Count > 1 Select grp.ToList ).SelectMany(Function(x) x).CopyToDataTable 특정 컬럼의 중복제거된 로우만 가져오기 ( From row In [데이터테이블명] Group row By a = row([컬럼명]).Tostring Into grp = Group Where grp.Count = 1 Select grp.ToList ).SelectMany(Function(x) x).CopyToDataTable
from bs4 import BeautifulSoup, Comment soup = BeautifulSoup("""1 23""") comments = soup.findAll(text=lambda text:isinstance(text, Comment)) comments_tags = [comment.extract() for comment in comments] 위의 코드를 날리면, 특정 html 코드에 있는 주석 부분만 추출해준다. 참조: https://code-examples.net/ko/q/358453 먼저 beatuifulsoup4가 없다면 먼저 설치해줍니다. pip install beautifulsoup4 설치가 완료되면 import 하여 사용합니다. from bs4 import BeautifulSou..

메뉴 별로 tui grid를 사용해서 작업하였는데 이상하게 다른 메뉴로 이동 시에 grid가 기존 메뉴에 있던 grid의 영향을 받아서 그리드가 깨지는 현상이 발생하였다. tui grid 개발팀에서 말한 해결책인 refreshLayout이나 setWidth 로 하는거는 해결이 안되었다. 메뉴간 이동할 때 next/link를 사용해서 Link 태그에 href를 넣어서 이동하는 형식으로 개발되었는데, 아마 이렇게하면 새로고침이 발생하지 않아서, 메뉴별 그리드 간의 충돌이 발생하는 걸로 보인다. 따라서, Link 태그 안쓰고 a태그에 href값을 넣어서 해결하였다. 어렵다...................... 완벽하게 해결한 느낌은 아니지만,

ERROR [NestApplication] Error: listen EADDRINUSE: address already in use :::5000 Nest js로 열심히 백엔드 개발을 하고있는데 이상하게 mac os에서만 5000번 포트를 사용하면 이미 사용하고 있다고 나온다. 모든 refrence들이 lsof -i :5000 명령어 때려서 pid 찾은다음 kill -9 pid를 이용해서 kill 하라 하는데 망할 kill 해도 다시 살아난다. 분명 무슨 5000번 포트를 계속 수신하고 있는 어플이 있다는 확신이 들어서 20분 투자했다. (주변 개발자는 걍 5001 쓰라 하는데 이 집념이 날 힘들게한다..) airplay라는 걸 수신하지 않던지 포트를 바꾸면 된단다. 이것은 분명히 새로운 AirPlay 기..

1. window10 hyper-v 가상환경 설치 PowerShell을 사용하여 Hyper-V를 사용하도록 설정 관리자 권한으로 PowerShell 콘솔을 엽니다. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All 명령을 찾을 수 없을 경우 관리자 권한으로 PowerShell을 실행하고 있는지 확인합니다. 설치가 완료되면 컴퓨터를 다시 부팅합니다. CMD와 DISM을 사용하여 Hyper-V를 사용하도록 설정 관리자 권한으로 PowerShell 콘솔을 엽니다. DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V 2. window10 hyper-v 가상환경 만들기..
#!/usr/bin/env python3 import asyncio from pyppeteer import launch _HTML = '[INPUT HTML경로]' _OUTFILE = '[OUTPUT 이미지 파일경로]' sourcepath = 'file://' + _HTML async def generate_pdf(): browser = await launch() page = await browser.newPage() await page.goto(sourcepath, {'waitUntil': 'networkidle2'}) await page.pdf({ 'path': _OUTFILE, 'format': 'A3', 'printBackground': True, 'margin': { 'top': 0, 'bott..
https://www.youtube.com/watch?v=Q0aduary6eE 참조 영상입니다. 좋습니다.
파이썬 딕셔너리란 무엇입니까? Python 의 딕셔너리는 키-값 쌍을 보유하는 데이터 값의 정렬되지 않고 변경 가능한 모음입니다. 딕셔너리의 각 키-값 쌍은 키를 관련 값에 매핑하여 더욱 최적화됩니다. Python의 딕셔너리는 중괄호 ({})를 사용하여 쉼표로 구분 된 키-값 쌍 목록을 묶어 선언합니다. Python 딕셔너리는 키와 값의 두 가지 요소로 분류됩니다. 키는 단일 요소가됩니다. 값은 목록 또는 목록 내의 목록, 숫자 등이 될 수 있습니다. 이 Python 자습서에서는 다음을 학습합니다. 파이썬 딕셔너리란 무엇입니까? Python 딕셔너리 구문 : 딕셔너리 키의 속성 파이썬 딕셔너리 방법 딕셔너리 업데이트 주어진 키가 이미 딕셔너리에 있는지 확인 Python 딕셔너리 내장 함수 변수 유형 Py..
document.querySelector로 검색하면 빠름 driver.find_elements_by_css_selector('a[href*="{url}"][class*="{class_name}"]')
로그인 버튼을 클릭하기 위해 사용한 Selenium 내장함수 find_element_by_xpath에 들어간 ‘//*[@id=”frmNIDLogin”]/fieldset/input’는 약간 생소하다. 이 함수는 XML문서의 일부분을 탐색하고 선택하는데 사용하는 쿼리 언어다. 루트 노드 대 루트가 아닌 노드 /div 는 오직 문서의 루트에 있는 div 노드만 선택한다. //div 는 문서의 어디에있든 모든 div노드를 선택한다. 속성 선택 //@href는 href 속성이 있는 모든 노드를 선택한다. //a[@href=’http:\/\/google.com’]는 구글을 가리키는 모든 링크를 선택한다. 위치에따른 노드 선택 (//a)[3]는 문서의 세 번째 링크를 선택한다. (//table)[last()]는 문서..

Element is not clickable at point (411, 675) 오류발생 selenium을 이용해서 functional test를 쨔는 도중, 특정 element를 클릭하는 부분을 쨔야하는 경우가 있었는데, # 다음과 같이 시도해 보았다. driver.find_element_by_xpath("//form[@class='ui form']/button").click() 아무리 해도 클릭이 되지 않는 것이었다. 그래서 is_enabled()를 사용해서 해당 엘리먼트가 클릭 가능한 지 테스트 해봤지만 True를 반환해서 여러가지 방법을 시도해 보았는데, 해당 버튼 element을 click()이나 submit() 함수를 이용해 클릭하는 것이 아닌, send_keys(Keys.ENTER)를 이용해..

OpenAPI 모듈 설치 키움 OpenAPI+ 모듈 다운로드 메뉴를 클릭하여 설치 파일을 다운로드합니다. 다음을 눌러 설치를 진행합니다. 기본 값을 그대로 둔채로 다음을 누르면 설치가 완료됩니다. KOA Studio 및 키움 버전처리 KOA Studio를 클릭하여 다운로드합니다. KOA Studio는 키움의 OpenAPI+를 테스트할 수 있는 프로그램으로 개발 과정에서 자주 사용됩니다. 다운로드 받은 파일의 압축을 해제한 후 KOA StudioSA.exe라는 파일을 클릭합니다. 경우에 따라 다음과 같은 에러가 발생할 수도 있습니다. 위 에러는 KOA StudioSA라는 프로그램의 C++로 개발되어있는데 이를 실행하는데 필요한 요소들이 여러분의 컴퓨터에 없어서 발생하는 겁니다. 에러가 발생한다면 KOA S..

안녕하십니까. 키움증권 OpenAPI 설치하는 과정에서 발생될 수 있는 문제를 해결해보겠습니다. 오늘은 mfc100.dll이(가) 없어 코드 실행을 진행할 수 없습니다. 또는 MSVCR100.dll이(가) 없어 코드 실행을 진행할 수 없습니다. 문제를 해결하기 위한 방법을 알아보겠습니다. 생각보다 해결 방법은 매우 쉽습니다. 방법은 기존 KOAStudioSA를 다운받은 폴더에 있는 KOAStudioSA파일과 KOALoader.dll파일을 OpenAPI를 다운로드한 폴더로 이동해주면 됩니다. 아래 그림으로 보시면 위의 폴더에 있는 파일 두 개를 복사 or 잘라넣기를 한 후, OpenAPI 폴더로 들어가서 붙여넣기를 진행합니다. 이렇게 하면 해결됩니다. 이전에 발생했던 에러에 필요한 파일인 mfc100.dl..

이경우에 한쪽 컴퓨터 마우스 + 키보드를 활용할 수 있는 어플이 있어 아래와 같이 소개하고자 한다. Barrier Download https://github.com/debauchee/barrier/releases Releases · debauchee/barrier Open-source KVM software. Contribute to debauchee/barrier development by creating an account on GitHub. github.com 1. 커밋 로그들이 꽤 긴데 음.. 무시하고 아래로 내려서 Asset 으로 가기로 한다. - 해당하는 OS 별로 받아서 설치 후 실행한다. 2. 실행하면 아래와 같은 창이 뜬다. 사용법은 굉장히 간단하다. - 서버의 경우 키보드+마우스가 붙어..

py -3.5 -m pip install virtualenv 안녕하세요. 파이썬은 여러 버전을 갖고 있습니다. 라이브러리마다 사용되는 파이썬 버전이 틀린 경우도 비일비재합니다. 파이썬 버전을 낮추고 높이고 이렇게 사용하실 필요는 없습니다. 필요한 버전을 버전별로 다운로드를 하여서 사용하시면 됩니다. 파이썬을 여러 버전을 어떻게 사용하는지 알아보도록 하겠습니다. 현재 제 컴퓨터에는 파이썬 3.7을 사용하고 있습니다. 그리고 파이썬 3.5 버전도 같이 사용하고 싶습니다. 현재 파이썬 버전부터 확인을 하겠습니다. 파이썬 버전 확인은 cmd 창에다가 python을 입력해주시면 됩니다. 파이썬 3.7이 설치가 된 것을 확인을 했습니다. 다음으로 파이썬 3.5 버전을 다운로드를 하고 설치를 해주셔야 되는데요. ht..
파이썬 SFTP 전송할 때는 pysftp 로 사용해서 전송 성공하였습니다. 라이브러리 설치 pip install pysftp import pysftp host = '호스트명' # 호스트명만 입력. sftp:// 는 필요하지 않다. port = 193 # int값으로 sftp서버의 포트 번호를 입력 username = '유저' # 서버 유저명 password = '비밀번호' # 유저 비밀번호 hostkeys = None # 서버에 저장되어 있는 모든 호스트키 정보를 불러오는 코드 cnopts = pysftp.CnOpts() # 접속을 시도하는 호스트에 대한 호스트키 정보가 존재하는지 확인 # 존재하지 않으면 cnopts.hostkeys를 None으로 설정해줌으로써 첫 접속을 가능하게 함 if cnopts...
# xpath 규칙 참조 # / : 절대경로를 나타냄 # // : 문서내에서 검색 # //@href : href 속성이 있는 모든 태그 선택 # //a[@href='http://google.com'] : a 태그의 href 속성에 http://google.com 속성값을 가진 모든 태그 선택 # (//a)[3] : 문서의 세 번째 링크 선택 # (//table)[last()] : 문서의 마지막 테이블 선택 # (//a)[position() < 3] : 문서의 처음 두 링크 선택 # //table/tr/* 모든 테이블에서 모든 자식 tr 태그 선택 # //div[@*] 속성이 하나라도 있는 div 태그 선택 # 아래 방법으로 크롬에서 xpath 가져오기 연습 가능 function getElementByXp..

Uipath 배열 정렬 Invoke Code를 통해 Array 변수 내의 아이템을 정렬한다. 오름차순 정렬 Array.Sort(arr변수) 내림차순 정렬 Array.Reverse(arr변수)
selenium을 사용하기 위해 chromedriver를 프로젝트내에 패킹했고, 경로 잡아주고 실행이 되는 것을 확인 했다. 그래서 pyinstaller --noconsole 옵션도 주고 webdriver 옵션에 options.add_experimental_option('excludeSwitches', ['enable-logging']) 도 줘봤고.. options.add_argument("--headless") options.headless = True 도 설정해봤는데 계속 뜨네???? google에 답이 있기에 추가로 검색 되도록 남깁니다. 파이참에서 shift 두번 누르면 All 검색이 가능하다 service.py로 검색해보면 webdriver\common 으로 끝나는 파일이 보이는데 열어서 아래와..