goodthings4me.tistory.com
파이썬으로 구분자를 주어 추출한 네이버 부동산 주소 텍스트 데이터에서 동명칭을 분리하여 추출하는 방법
파이썬으로 주소 분리 작업을 많이 하다 보면 구분자로 연결한 수십 수백 만 건의 텍스트 결과물에서 특정 부분을 추출하는 경우가 가끔 있다. 이때 엑셀로 변환 후에 추출할 수도 있지만, 엑셀의 행의 한계(row의 수가 104만개 정도)와 로딩 시간이나 함수 처리 시간이 너무 많이 걸리는 문제가 있다.
아래처럼 된 텍스트 결과물에서 그 중간에 있는 도로명주소와 괄호 안의 동 명칭을 추출해야 일이 있었는데, 그 아래처럼 코드를 짜서 실행해보니 잘 나왔다.
juso = [
'1977.11.$서울특별시 구로구 고척동 97-3$서울특별시 구로구 경서로1길 14(고척동, 삼명아파트)$서울특별시 구로구 고척동 97-3 삼명아파트',
'1977.12.$서울특별시 영등포구 여의도동 40-4$서울특별시 영등포구 국제금융로7가길 21(여의도동, 화랑아파트)$서울특별시 영등포구 여의도동 40-4 화랑아파트',
'1978.04.$서울특별시 서초구 방배동 776-3$서울특별시 서초구 방배로37길 26-9(방배동, 쌍용예가클래식)$서울특별시 서초구 방배동 776-3 쌍용예가클래식',
'1978.11.$서울특별시 광진구 광장동 145-8$서울특별시 광진구 아차산로 637(광장동)$서울특별시 광진구 광장동 145-8 워커힐아파트',
]
for line in juso:
idx = -1
p = [] # 위치값 저장
for i in range(1, line.count('$') + 1):
idx = line.find('$', idx + 1) # 데이터에서 '$' 위치값
print(f'idx: {idx}')
if i in (2, 3): # 추출할 도로명 앞뒤에 있는 '$' 순번 숫자 지정
p.append(idx) # 위치값을 리스트에 저장
print(p)
road = line[p[0]+1:p[1]] # 추출할 도로명주소
print(road)
# 도로명주소와 괄호 안의 동명칭 추출
road2 = ''
if road.find('(') == -1: # find()에서 '(' 없으면 -1 반환
road2 = road
else:
road2 = road[:road.find('(')] # '(' 위치 찾고 거기까지 문자열 추출
print(f'road2: {road2}')
dong = road[road.find('(')+1:].split(',')
if len(dong) > 1:
print(dong[0])
else:
print(dong[0][:-1])
print('-' * 30)
위 코드를 실행하면 다음과 같은 결과가 나온다.
idx: 8
idx: 27
idx: 58
[27, 58]
서울특별시 구로구 경서로1길 14(고척동, 삼명아파트)
road2: 서울특별시 구로구 경서로1길 14
고척동
------------------------------
idx: 8
idx: 29
idx: 65
[29, 65]
서울특별시 영등포구 국제금융로7가길 21(여의도동, 화랑아파트)
road2: 서울특별시 영등포구 국제금융로7가길 21
여의도동
------------------------------
idx: 8
idx: 28
idx: 64
[28, 64]
서울특별시 서초구 방배로37길 26-9(방배동, 쌍용예가클래식)
road2: 서울특별시 서초구 방배로37길 26-9
방배동
------------------------------
idx: 8
idx: 28
idx: 52
[28, 52]
서울특별시 광진구 아차산로 637(광장동)
road2: 서울특별시 광진구 아차산로 637
광장동
------------------------------
'코딩 연습 > 파이썬 크롤링' 카테고리의 다른 글
[파이썬 크롤링 연습] 가정용 보일러 인증제품 목록 수집 (0) | 2023.11.08 |
---|---|
서울시 집수리닷컴 시공업체 추출 파이썬 크롤링 연습 (0) | 2023.05.14 |
전원주택라이프 웹 사이트 크롤링 테스트 (0) | 2023.03.25 |
네이버 블로그 제목 리스트 추출해보기 (0) | 2022.08.23 |
네이버에서 도로명주소 지번주소 건물명칭 추출하기 (0) | 2022.07.18 |
댓글