일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 입문
- pywinauto 윈도우
- 네이버 로그인 영수증 해결
- 네이버커머스API
- pywinauto 윈도우제어
- 왕초보 파이썬 실행
- 가상환경설치
- 커머스API
- Element is not clickable at point
- 파이썬 네이버 로그인
- 날짜 정규식
- vscode venv 설치
- UiPath
- pycdas.exe
- 파이썬 가상환경 설치방법
- 네이버 로그인 캡챠해결
- 네이버 로그인 하기
- pycdc.exe
- 파이썬 환경설정
- Uipath 기초
- 파이썬 가상환경 설치
- 네이버부동산크롤링
- selenium
- venv 설치
- 파이썬네이버부동산
- Uipath 설치방법
- 네이버매물크롤링
- Python
- pywinauto
- Selenium 셀렉터잡기
- Today
- Total
목록프로그래밍/python (267)
콘솔워크
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..
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 으로 끝나는 파일이 보이는데 열어서 아래와..
def close_new_tabs(driver): tabs = driver.window_handles while len(tabs) != 1: driver.switch_to.window(tabs[1]) driver.close() tabs = driver.window_handles driver.switch_to.window(tabs[0]) driver.window_handles 에는 default 창을 포함한 창들이 저장되어있다. while 문을 통해 첫번째 tab[0] 창을 제외한 모든 창을 닫는다. 마지막으로는 반드시 switch_to.window 로 첫번째 창으로 돌아와야한다.
openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format. openpyxl 라이브러리를 사용하면 엑셀 특정값 가져오기 쉽다. 하지만 xls 확장자는 지원하지 않았다. 그래서 찾은 방법은 xlrd 라이브러리를 사용하는 것이다. import xlrd book = xlrd.open_workbook("myfile.xls") print("The number of worksheets is {0}".format(book.nsheets)) print("Worksheet name(s): {0}".format(book.sheet_nam..
import glob folder = r'C:\Users\ProDesk\Downloads' file_list = glob.glob(f"{folder}/report*.xls") for f in file_list: print(f) * 라는 와일드카드 문자를 넣어서 표현이 가능하다.
pandas 사용 중 index를 안가져오고 싶을 때는 속성중에 index_col에 False 값을 주면 된다. 참조. pd.read_excel(file_path, sheet_name=sheet_name, index_col=False) pd.read_excel(file_path, sheet_name=sheet_name, skiprows = 5, usecols="A,BH,BI", index_col=False)
Python Pandas Dataframe 원하는(specific, certains) 로우(row)와 컬럼(columns)만 가져오기 df = pd.read_excel(file_location,sheet_name='Sheet1', usecols="A:F,H,J:N") usecols를 사용하면 원하는 컬럼을 지정할 수 있다. df = pd.read_excel(file_path, sheet_name=sheet_name, skiprows = 5) skiprows를 사용하면, 엑셀 시트에서 필요없는 행(로우)을 무시하고 Dataframe 가져오기가 가능하다.
python dataframe의 two column들을 특정 문자열을 붙여서 하나로 합치려고 한다. 기본 식은 간단하다. df['result'] = df['col1'] + " " + df['col2'] 이렇게 수식처럼 두개를 붙여주면 된다. 하지만 나에게 문제는 df['col2']의 값이 없을 때는 두 개가 제대로 안 합쳐지는 결과가 나왔다. 이에 lamda 함수를 붙여서 합쳐주는 것으로 변경하였다. def combine_2rd_columns(col_1, col_2): result = col_1 if not pd.isna(col_2): result += " " + str(col_2) return result df["result"] = df.apply(lambda x: combine_2rd_columns(..
1. image crop from PIL import Image area = (가로시작점, 세로시작점, 가로범위, 세로범위) crop_image = img.crop(area) im.save # 저장하기 2. opveCV 활용 import cv2 src=cv2.imread("Image/pawns.jpg", cv2.IMREAD_COLOR) dst=src.copy() dst=src[100:600, 200:700] %높이, 너비 3. trim 활용 import cv2 #cv2 임포트 def im_trim (img): #함수로 만든다 x = 845; y = 325; #자르고 싶은 지점의 x좌표와 y좌표 지정 w = 180; h = 235; #x로부터 width, y로부터 height를 지정 img_trim = i..
프로그램을 주기적으로 자동으로 돌려놔야 할 일이 생겨서 아래와 같이 Python Schedule 모듈을 이용하여 원하는 시간대에 프로그램을 실행시키도록 하였다. import schedule import time def job(): #TO DO ... # 10초에 한번씩 실행 schedule.every(10).second.do(job) # 10분에 한번씩 실행 schedule.every(10).minutes.do(job) # 매 시간 실행 schedule.every().hour.do(job) # 매일 10:30 에 실행 schedule.every().day.at("10:30").do(job) # 매주 월요일 실행 schedule.every().monday.do(job) # 매주 수요일 13:15 에 실행 ..
Dataframe의 특정 컬럼을 List로 반환 li_columns = df["ColumnName"].tolist() Dataframe에서 필요한 컬럼만 추출 df_new = df_old.loc[:, ["ColumnName1", "ColumnName2", "ColumnName3"]] Dataframe에서 특정 값(list)이 포함된 데이터만 가져오기 codes = [12, 13, 14] df_contain_codes = df[df["CodeColumn"].isin(codes)] Dataframe에서 특정 컬럼의 값이 있는 (Null이 아닌) 것만 추출 df_notnull = df[df["ColumnName"].notnull()] Dataframe에서 특정 컬럼의 값이 없는 (Null인) 것만 추출 df_..
uipath.tistory.com/68 [Python pyinstaller] exe 윈도우 실행 파일 만들기 1. pyinstaller 설치 pip 명령오로 pyinstaller를 설치한다. pip install pyinstaller 2. 명령어실행 설치후에 윈도우 실행파일을 만들고자하는 파일명을 입력한다. pyinstaller -w -F [파일명] pyinstaller -w -.. uipath.tistory.com pyinstaller 사용법에 대해서는 위에 포스팅 참조해보세요. 코드 내에 chromedriver가 사용되는 경우, 실행파일이 제대로 실행되지 않는 문제가 발생합니다. 이는 실행에 필요한 chromedriver가 실행파일에 포함되지 않아 발생하는 문제입니다. 1. 이를 해결하기 위해서는 먼..
1. pyinstaller 설치 pip 명령오로 pyinstaller를 설치한다. pip install pyinstaller 2. 명령어실행 설치후에 윈도우 실행파일을 만들고자하는 파일명을 입력한다. pyinstaller -w -F [파일명] pyinstaller -w -F 3_simpyeongwon-kakao.py -w 와 -F는 옵션값이다. -F, --onefile Create a one-file bundled executable. -w, --windowed, --noconsole Windows and Mac OS X: do not provide a console window for standard i/o. On Mac OS X this also triggers building an OS X .app..
from openpyxl import Workbook wb = Workbook() ws = wb.active ws.append(("학번", "출석", "퀴즈1", "퀴즈2", "중간고사", "기말고사", "프로젝트")) scores = [ (1, 10, 8, 5, 14, 26, 12), (2, 7, 3, 7, 15, 24, 18), (3, 9, 5, 8, 8, 12, 4), (4, 7, 8, 7, 17, 21, 18), (5, 7, 8, 7, 16, 25, 15), (6, 3, 5, 8, 8, 17, 0), (7, 4, 9, 10, 16, 27, 18), (8, 6, 6, 6, 15, 19, 17), (9, 10, 10, 9, 19, 30, 19), (10, 9, 8, 8, 20, 25, 20) ] fo..
기존 버전에서 User-Agent를 셀레니움으로 가져오게 하는 부분을 추가하였다. import re import requests from bs4 import BeautifulSoup from selenium import webdriver def agent_text(): options = webdriver.ChromeOptions() options.headless = True options.add_argument("window-size=1920x1080") # options.add_argument("user-agent=") browser = webdriver.Chrome(options=options) browser.maximize_window() url = "https://www.whatismybrowse..
User Agent 정보를 크롬에서 Headless를 통해서 자동으로 가져오는 소스 코드이다. from selenium import webdriver options = webdriver.ChromeOptions() options.headless = True options.add_argument("window-size=1920x1080") options.add_argument("user-agent=") browser = webdriver.Chrome(options=options) browser.maximize_window() url = "https://www.whatismybrowser.com/detect/what-is-my-user-agent" browser.get(url) detected_value =..
다음에서 헬리오시티를 검색한 결과 중 부동산 매물 정보를 읽어오는 퀴즈 입니다. 소스입니다. 개발소스: import requests from bs4 import BeautifulSoup url = "https://search.daum.net/search?w=tot&DA=YZR&t__nil_searchbox=btn&sug=&sugo=&sq=&o=&q=%ED%97%AC%EB%A6%AC%EC%98%A4%EC%8B%9C%ED%8B%B0" res = requests.get(url) res.raise_for_status() soup = BeautifulSoup(res.text, "lxml") with open("real-estate.html", "w", encoding="utf8") as f: f.write(sou..
배운내용 정리 Selenium을 더 잘 활용하기 위해서는 아래 사이트 참조 selenium-python.readthedocs.io/ Selenium with Python — Selenium Python Bindings 2 documentation Note This is not an official documentation. If you would like to contribute to this documentation, you can fork this project in GitHub and send pull requests. You can also send your feedback to my email: baiju.m.mail AT gmail DOT com. So far 50+ community sele..
나도코딩에서 동적인 동작을 통해서 구글에서 webscraping이 가능하다. 스크롤을 내리면서 전체 할인된 영화정보를 가져오고, 이것을 크롬을 열지 않고도 웹스크래핑이 가능하다. headless 옵션을 제외하면 foreground로 동작한다. import time from bs4 import BeautifulSoup from selenium import webdriver options = webdriver.ChromeOptions() options.headless = True options.add_argument("window-size=1920x1080") options.add_argument("user-agent=") interval = 2 # 2초에 한번 씩 스크롤 내림 browser = webdri..
pandas의 두 데이터 프레임을 모두 결합하는 것은 concat () 함수를 사용하여 간단한 원형 교차로 방식으로 수행됩니다. pandas의 합집합 기능은 합집합과 비슷하지만 중복을 제거합니다. 팬더의 합집합은 concat () 및 drop_duplicates () 함수를 사용하여 수행됩니다. 예를 들어 설명하면 명확해질 것입니다. Pandas dataframe python에서 Union과 Union을 모두 사용하는 방법을 살펴 보겠습니다.Pandas 데이터 프레임 Python에서 모두 통합 및 통합 : concat () 함수를 사용하여 팬더의 두 데이터 프레임을 모두 쉽게 통합 할 수 있습니다. 예를 들어 보겠습니다. 먼저 두 개의 데이터 프레임을 만듭니다. df1은 df2는 import pandas..
dataframe에서 전화번호 컬럼에 값이 있는 애들만 (null이 아닌 것) 추출하여 넣어주었다. df_notnull = df1[df1["전화번호"].notnull()]
dataframe 내부의 전화번호 컬럼에 특정 값을 reaplce 함수를 통해서 변경하였다. df1['전화번호'] = df1['전화번호'].str.replace('-', '')
# useragent 가져오는 사이트 주소 # https://www.whatismybrowser.com/detect/what-is-my-user-agent import requests url = "https://uipath.tistory.com" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"} res = requests.get(url, headers=headers) res.raise_for_status() print(len(res.text)) with open("uipath.tistory.html..
파이썬 코딩 무료 강의 (활용편3) - 웹 크롤링? 웹 스크래핑! 제가 가진 모든 비법을 알려드리겠습니다. [나도코딩] import requests res = requests.get('http://google.com') res.raise_for_status() # print('응답코드:', res.status_code) # if res.status_code == requests.codes.ok: # print("정상입니다.") # else: # print("문제가 생겼습니다. [에러코드", res.tatus_code, "]") print(len(res.text)) with open("mygoogle.html", "w", encoding="utf8") as f: f.write(res.text) html u..
파이썬 코딩 무료 강의 (활용편3) - 웹 크롤링? 웹 스크래핑! 제가 가진 모든 비법을 알려드리겠습니다. # 주민등록번호 # 901201-1111111 # 이메일주소 # nadocoding@gmail.com # nudocoding@gmail.com import re # 1. p = re.compile("원하는 형태") # 2. m = p.match("비교할 문자열") # 3. m = p.search("비교할 문자열") # 주어진 문자열 중에 일치하는게 있는지 확인 # 4. lst = p.findall("비교할 문자열") # 일치하는 모든 것을 "리스트" 형태로 반환 p = re.compile("ca.e") # . : 하나의 문자를 의미 >> care , cafe, case # ^ (^de) : 문자열의..