전에 작성된것
완성형 selenium 제작하기
파이썬은 모듈화가 답이기때문?에
os 에서 처리되는 python 따로만들고 셀레늄으로 처리하는 python 따로 만들고
둘다 임포트하는 python 만들고
python 하나에서 모두 처리될수 있게 변경하였다.
이제 대시보드를 만들어볼 예정이다.
selenium으로 움직이는것만 모아둔 파이썬 코드
from selenium import webdriver
from selenium.webdriver import ActionChains
import time
driverpath= './chromedriver_win32/chromedriver91_101.exe'
def chromedriver(_url):
options = webdriver.ChromeOptions()
options.add_argument('--window-size=1920x1080')
_driver = webdriver.Chrome(driverpath, options=options)
_driver.get(_url)
return _driver
def chromedriver_hide(_url):
options = webdriver.ChromeOptions()
options.headless = True
options.add_argument('--window-size=1920x1080')
options.add_argument("--disable-gpu")
_driver = webdriver.Chrome(driverpath, options=options)
_driver.get(_url)
_driver.implicitly_wait(10)
return _driver
def xpath_send_keys(_driver,_xpath,_send_keys):
try:
_driver.find_element_by_xpath(_xpath).send_keys(_send_keys)
time.sleep(1)
except:
print('no serch send key')
def xpath_click(_driver,_xpath):
try:
_driver.find_element_by_xpath(_xpath).click()
time.sleep(3)
except:
print('no serch btn\n'+_xpath)
def xpath_script(_driver,_xpath):
try:
test = _driver.find_element_by_xpath(_xpath).click()
except:
print('done err')
def scount(_driver, _xpath):
result = False
try:
scount = _driver.find_element_by_xpath(_xpath).text
if(int(scount) > 0 ):
result = True
return result
except:
print('scount err')
return result
def payments(_driver):
try:
tbody = _driver.find_element_by_tag_name('tbody')
rows = tbody.find_elements_by_tag_name('tr')
for index, value in enumerate(rows):
body=value.find_elements_by_tag_name("td")[6]
if( "결제됨" in body.text):
value.find_element_by_tag_name("td").click()
except:
print('payment err')
셀레늄으로 처리된 csv 데이터처리 파이썬 코드
import pandas as pd
import datetime as date
import numpy as np
import os.path as ospath
import shutil
import getpass
def os_move_rename():
print('start-os_move_rename')
#================== 날짜 ==================
to_date = date.date.today()
result = False
#================== 모든 경로 ==================
savepath = './savepath/'
dowunlodepath = 'C:/Users/{}/Downloads/'.format(getpass.getuser())
#================== 파일 이름 ==================
dowunlodename = 'orders_export.csv'
savename = 'filename{}.csv'.format(to_date)
#================== 파일 확인 ==================
if ospath.isfile(dowunlodepath+dowunlodename):
shutil.move(dowunlodepath+dowunlodename, savepath+savename)
print('end-os_move_rename.py')
result = True
else:
print('file is no serch\nend-os_move_rename')
return result
def os_transfrom():
print('start-os_transfrom')
#================== 날짜 ==================
to_date = date.date.today()
file_name = "./mypath/filename{}.csv".format(to_date)
#================== 파일 유무 확인 및 결과 도출 ==================
if ospath.isfile(file_name):
files = pd.read_csv(file_name)
result = pd.DataFrame()
result['column1'] = files['column1']
result['column2'] = files['column2']
result['column3'] = np.NaN
result['column4'] = files['column3'] + " " + files['column4']+" "+files['column5']
result['column5'] = np.NaN
result['column6'] = files['column6']
result['column7'] = np.NaN
result['column8'] = files['column8']
result['column9'] = np.NaN
result.fillna(method='ffill').to_excel('./results/result{}.xlsx'.format(to_date))
else:
print('file is no serch')
print('end-os_transfrom')
실행코드
import selenium_def as shop
import data_processing as shop_os
import time
print('start-shopify.py')
#================== 페이지 띄우기 및 시작주소 확인 ==================
driver = shop.chromedriver('path/chromedriver.exe')
#================== 로그인 xpath 값 설정 ==================
input_id = 'xpath_id_text'
input_pw = 'xpath_pw_text'
btn_id = 'xpath_id_btn'
btn_pw = 'xpath_pw_btn'
#================== 로그인하기 ==================
shop.xpath_send_keys(driver,input_id,'id')
shop.xpath_click(driver, btn_id)
shop.xpath_send_keys(driver,input_pw,'pw')
shop.xpath_click(driver, btn_pw)
#================== 주문 내보내기 xpath 값 설정 ==================
span_count = 'xpath_counts'
btn_export = 'xpath_btn1'
btn_selects = 'xpath_btn2'
btn_done = 'xpath_btn3'
#================== 주문 확인하기 ==================
result = shop.scount(driver, span_count)
if result:
shop.payments(driver)
shop.xpath_click(driver, btn_export)
shop.xpath_click(driver, btn_selects)
shop.xpath_script(driver, btn_done)
files = shop_os.os_move_rename()
if files:
shop_os.os_transfrom()
print('end shopify.py')
대시보드 만들려고한다.
오케오케
대시보드 만들기 프로젝트 #0. 구조 – IG Son
이 블로그에서는 여러가지 프로젝트와 그 정리본을 공유할 예정입니다. 우선 현재 실시간으로 개발중에 있는 나의 대시보드 만들기 프로젝트의 진행과정을 공유하도록 하겠습니다. <프로젝트
igson.net
여기를 참조할것이다.
'기록중' 카테고리의 다른 글
2021.07.15 오늘의 한일 (0) | 2021.07.15 |
---|---|
2021.07.13 오늘의 한일 (0) | 2021.07.13 |
오늘도 잘 보지 않는 기술남기기(position: relative,absolute) (0) | 2021.06.29 |
오랫만에 쓰는 기록 (0) | 2021.06.24 |
21.06.08 (0) | 2021.06.08 |