테크니션 :: 테크니션
반응형

구글 플레이앱스토어에 가끔 버전을 새로 업데이트 해야할 때가 있다

이렇게만 놔두면 앱 실행시 다시 구글플레이스토어로 돌아가는 현상이 생긴다

이를 해결하기 위해서는 

활성으로 바뀌고 나면 서버 안에서도 수정을 해줘야한다

mobilelogin.jsp 파일  \src\main\webapp\WEB-INF\jsp\mobile

반응형
반응형

저번에 크롤링으로 찾아서 했지만

API를 사용하면 더 빠르게 처리할 수있다

GPT 만세

1. https://www.juso.go.kr/addrlink/main.do 여기서 api 신청을 받아야됨

 

2. 7천건을 돌리려 햇더니 400정도에서 그만 하라고 서버측 부하 과다를 막기 위해 막음

 

3. 많이 돌리려면 크롤링이 나은거같음

import requests
import json

def search_address(api_key, keyword):
    url = "https://business.juso.go.kr/addrlink/addrLinkApiJsonp.do"
    params = {
        "currentPage": "1",
        "countPerPage": "1",
        "keyword": keyword,
        "confmKey": api_key,
        "resultType": "json",
        "hstryYn" :"N",
        "firstSort": "none",
        "addInfoYn": "Y"
    }

    # JSONP 요청을 보내기 위해 callback 파라미터를 지정합니다.
    params["callback"] = "callback"

    response = requests.get(url, params=params)

    # 응답을 JSONP 형식으로 받기 위해 callback 부분을 잘라냅니다.
    jsonp_data = response.text[response.text.find("(") + 1:response.text.rfind(")")]

    # JSON 형식으로 파싱합니다.
    result = json.loads(jsonp_data)

    if result.get("results"):
        address_info = result["results"]["juso"][0]
        return address_info
    else:
        return None


def main():
    api_key = ""
    keyword = "서귀포시 태평로 351"

    address_info = search_address(api_key, keyword)

    if address_info:
        print("주소:", address_info["roadAddr"])
        print("우편번호:", address_info["zipNo"])
        print("동사무소:", address_info["hemdNm"])
    else:
        print("주소 검색에 실패했습니다.")


if __name__ == "__main__":
    main()

반응형
반응형

우리나라 주소는 법정동과 행정동명 차이로 

주소에 나와있는 동과 동사무소가 다른 경우가 있다

이 경우에는

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)

가끔 폐지라고 나오는 경우가 있는데 이에 대한 예외처리까지 담았다

반응형

+ Recent posts