파이썬 클래스 메소드 질문
조회수 282회
class JPP:
def __init__(self):
# headless chrome 생성 및 다운로드 폴더 지정 코드
self.driver = webdriver.Chrome() # options=self.options
# 이하 현재시간 기준 -12시간 + 24시간의 클래스 변수 생성 코드(생략)
# 사이트 로그인 관련 메소드 생략
def set_datetime_int_search(self):
# 웹사이트에서 날짜, 시간 등 입력하고 조회버튼을 누르는 코드
def return_skd(self):
html = self.driver.page_source
df = pd.read_html(html)[0]
logger.debug('df called')
return df
# 기타 클래스 메소드 생략
# 기타 코드 생략
csv_downloader = JPP()
csv_downloader.connect_to(site)
while True:
try:
csv_downloader.set_datetime_int_search()
if 'df1' not in globals():
df1 = csv_downloader.return_skd() # 문제가 되는 부분
print(df1)
logger.debug(f'waiting for {JPP_SKD_UPDATE_config.config.interval} sec')
time.sleep(JPP_SKD_UPDATE_config.config.interval)
df2 = csv_downloader.return_skd() # 정상 표출
print(df2)
if csv_downloader.compare_old_new(df2, df1):
break
csv_downloader.skd_update()
df1 = df2
else:
break
time.sleep(JPP_SKD_UPDATE_config.config.interval)
except Exception as e:
print(e)
df1 = csv_downloader.return_skd() # 문제가 되는 부분
df2 = csv_downloader.return_skd() # 정상 표출
같은 메서드로 불러왔는데 결과가 다릅니다. 제 생각에는 df1은 인터넷 사이트 처음 들어갔을 때 화면을 불러온 거 같고 df2는 제가 설정한 시간을 기준하여 불러온 거 같습니다. break로 while 구문을 탈출한 뒤 재호출 해보면 정상적으로 결과(df2와 같음)가 나옵니다.
왜 df1은 같은 클래스 메소드인데 결과가 다를까요? 결과는 아래 첨부하겠습니다
그리고 처음부터 코드를 몇개씩 묶어서 실행하면 정상적으로 조회가 됩니다. 이유가 뭔지 알려주시면 감사하겠습니다.
df1
Unnamed: 0_level_0 DATE FLT ... CGO PLD OTH FCST PLD
Unnamed: 0_level_1 DATE FLT ... 단위 : LBS 단위 : LBS 단위 : LBS
0 1 2022-11-08 271 ... NaN NaN 17811
1 2 2022-11-08 222 ... NaN NaN 33799
2 3 2022-11-08 643 ... NaN NaN 18814
3 4 2022-11-08 202 ... NaN NaN 30447
4 5 2022-11-08 272 ... NaN NaN 15359
# 중략
14 15 2022-11-08 220 ... NaN NaN 17480
15 16 2022-11-08 3 ... NaN NaN 26888
16 17 2022-11-08 273 ... NaN NaN 9537
17 18 2022-11-08 214 ... NaN NaN 29364
18 19 2022-11-08 61 ... NaN NaN 17588
[19 rows x 15 columns]
df2
Unnamed: 0_level_0 DATE FLT ... CGO PLD OTH FCST PLD
Unnamed: 0_level_1 DATE FLT ... 단위 : LBS 단위 : LBS 단위 : LBS
0 1 2022-11-08 271 ... NaN NaN 17811
1 2 2022-11-09 271 ... NaN NaN 20780
2 3 2022-11-09 222 ... NaN NaN 28318
3 4 2022-11-08 222 ... NaN NaN 33799
4 5 2022-11-08 643 ... NaN NaN 18814
# 중략
50 51 2022-11-08 211 ... NaN NaN 33040
51 52 2022-11-07 211 ... NaN NaN 31918
52 53 2022-11-08 647 ... NaN NaN 32938
53 54 2022-11-07 281 ... NaN NaN 32233
54 55 2022-11-08 281 ... NaN NaN 32233
[55 rows x 15 columns]
댓글 입력