Program Language/Python

(python) 국세청 사업자 조회

야곰야곰+책벌레 2023. 11. 23. 10:07
728x90
반응형
import selenium # 여기서는 약자를 붙이지 않았다.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
import time

service = Service(ChromeDriverManager().install())
options = Options()
options.add_argument("--start-maximized")

driver = webdriver.Chrome(service=service, options=options) # 우선 경로나 옵션을 넣으면 동작 하지 않음 (해결 안됨)
driver.maximize_window() # 창을 최고 사이즈로 함
driver.get('https://teht.hometax.go.kr/websquare/websquare.html?w2xPath=/ui/ab/a/a/UTEABAAA13.xml') # 국세청 사업자 등록 상태 조회

import pandas as pd
bn = pd.read_csv('사업자번호.csv')
print(bn)

# 셀레니움 클래스를 이용함.
from selenium.webdriver.common.by import By

tb_list = []

for i in range(len(bn)) :
    time.sleep(4) # 검색 시간 필요
        
    bn_num = bn.iloc[i]['사업자번호']
    
    driver.find_element(By.XPATH, '//*[@id="bsno"]').send_keys(bn_num) # 사업자 번호 기입
    driver.find_element(By.XPATH, '//*[@id="trigger5"]').click() # 조회하기
    time.sleep(1) # 검색 시간 필요
    tb = driver.find_element(By.XPATH, '//*[@id="grid2_body_tbody"]') # 데이터 객체로 가져오기
    print(tb.text)
    time.sleep(1)
    tb_split = tb.text.split(" ")
    tb_list = tb_list + [[tb_split[0], " ".join(tb_split[1:-1]), tb_split[-1]]]
    
print(tb_list)

time.sleep(1)

df = pd.DataFrame.from_records(tb_list, columns = ['사업자등록번호', '과세여부', '조회일'])
import xlwings as xw
xw.view(df)
728x90
반응형