반응형
우리나라 주소는 법정동과 행정동명 차이로
주소에 나와있는 동과 동사무소가 다른 경우가 있다
이 경우에는
https://www.juso.go.kr/openIndexPage.do
여기에 들어가서 찾을 수 있다
답십리 래미안 관련 업무는 답십리1동에서 보는 것을 알 수 있다
매월동은 서창동으로 가야된다
주소 하나면 바로 검색을 하면 되는데
여러개를 일일히 치는 것 보다
파이썬에서 엑셀을 읽어서 검색 후 해당 관할동사무소를 다시 엑셀에 저장하는 코드로
돌리는게 더 편할 것 같다
import time
from selenium import webdriver
import pandas as pd
from selenium.webdriver.common.by import By
import openpyxl
file_path = r'C:\Users\Administrator\Downloads\all_personn.xlsx'
sheet_name = 'Sheet1'
df = pd.read_excel(file_path, sheet_name=sheet_name)
data_list_juso = df["지번주소"].tolist()
driver= webdriver.Chrome()
dongsamuso=[]
for i in range(0,len(data_list_juso)):
url = "https://www.juso.go.kr/support/AddressMainSearch.do?searchKeyword=&dsgubuntext=&dscity1text=&dscounty1text=&dsemd1text=&dsri1text=&dssan1text=&dsrd_nm1text=&aotYn=N"
driver.get(url)
time.sleep(0.1)
driver.maximize_window()
time.sleep(0.22)
ddd = ' '.join(data_list_juso[i].split()[:3])
#ddd = data_list_juso[i]
# input_xpath = r'/html/body/div[4]/main/div/section[1]/div[1]/form/fieldset/div/div[1]/input[1]'
input_xpath = r'/html/body/div[2]/div/main/div[1]/form/fieldset/div[1]/div[1]/div/input[1]'
input_element = driver.find_element(By.XPATH, input_xpath)
input_element.send_keys(ddd)
time.sleep(0.2)
button_xpath = r'/html/body/div[2]/div/main/div[1]/form/fieldset/div[1]/button'
button_element = driver.find_element(By.XPATH, button_xpath)
button_element.click()
time.sleep(2)
nbutton_xpath = r'#list1 > div.addrWrap > div.addAddr > a'
nbutton_element = driver.find_element(By.CSS_SELECTOR, nbutton_xpath)
nbutton_element.click()
paegi = r'#list1'
meeee = driver.find_element(By.CSS_SELECTOR, paegi).text.split('\n')
k = list(meeee[1])[-1]
if k == '지':
anbutton_xpath = r' # list2 > div.addrWrap > div.addAddr > a'
anbutton_element = driver.find_element(By.CSS_SELECTOR, nbutton_xpath)
anbutton_element.click()
text_xpath = r'#engAddr_2 > ul > li:nth-child(3) > span:nth-child(2)'
text_element = driver.find_element(By.CSS_SELECTOR, text_xpath)
text_value = text_element.text
words = text_value.split()
second_last_word = str(words[:-1])
else:
text_xpath = r'#engAddr_1 > ul > li:nth-child(3) > span:nth-child(2)'
text_element = driver.find_element(By.CSS_SELECTOR, text_xpath)
text_value = text_element.text
words = text_value.split()
second_last_word = str(words[:-1])
dongsamuso.append(second_last_word)
workbook = openpyxl.load_workbook(file_path)
sheet_name = 'Sheet1'
sheet = workbook[sheet_name]
sheee_name = 'H'+str(i+2)
sheet[sheee_name] = second_last_word
workbook.save(file_path)
가끔 폐지라고 나오는 경우가 있는데 이에 대한 예외처리까지 담았다
반응형
'컴퓨터' 카테고리의 다른 글
리눅스 서버 재기동시 설정 변경 - DNS 세팅 (0) | 2023.12.19 |
---|---|
엑셀에서 alt+enter로 만들어진 줄바꿈 없애기 - Ctrl + J (0) | 2023.11.29 |
XRDP 재시작 (0) | 2023.09.18 |
프로그래머스 코딩테스트 네트워크 (0) | 2023.06.19 |
#백준#11047#그리디#greedy#algorithm (0) | 2023.05.13 |