goodthings4me.tistory.com
서울시 집수리닷컴은 주거환경 개선을 위한 집수리 비용 보조 사업을 홍보하고 운영하는 웹 사이트인데, 이 사이트에 등록된 집수리 시공업체를 보면, 400여 개 시공업체들이 등록되어있다. 이 업체들을 파이썬 크롤링을 통해 추출하는 연습을 해봤다.
집수리 시공업체 정보 추출해보기

▶ 집수리닷컴 시공 지원을 위해 등록한 시공 업체 추출 리스트 >>
[파이썬 소스 코드]
import requests
from bs4 import BeautifulSoup
url = 'https://jibsuri.seoul.go.kr/repair/entInfo/entList.do?pageIndex=1&sggCode=&cnstrctCode=05'
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
}
response = requests.get(url, headers=header)
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table', class_='tb_st03')
trs = table.select('tbody > tr')
ext_data = []
sigong = {'01':'방수공사', '02':'목공사', '03':'금속공사', '04':'지붕 및 홈통공사', '05':'창호 및 유리공사', '06':'타일공사', '07':'도장공사', '08':'단열공사', '09':'수장공사(도배,마감공사)', '10':'급배수위생설비공사', '11':'난방설비공사(보일러)', '12':'전기(배관/배선)공사', '13':'조명공사', '14':'기타'}
for tr in trs:
ext = []
for n, td in enumerate(tr.find_all('td')):
if n == 0:
no = td.text.strip() # '\n\r\n\t\t\t\t\t\t\t\t\t217\r\n\t\t\t\t\t\t\t\t'
ext.append(no)
if n == 1:
company = td.text
ext.append(company)
if n == 2:
biz_num = td.text
ext.append(biz_num)
if n == 3:
ceo = td.text
ext.append(ceo)
if n == 4:
categotype = td.text
ext.append(categotype)
if n == 5:
# classify = td.text
# 추출이 안되어서 보니, 개발자도구에서는 안 보이는 코드가 있음. 페이지 소스보기에서 보면 hidden input 있음
classify = td.select_one('td > input')['value'].split(',')
classify2 = ''
for n, si in enumerate(classify, 1):
if si in sigong.keys():
# print(sigong[si])
if n < len(classify):
classify2 += sigong[si] + ', '
else:
classify2 += sigong[si]
ext.append(classify2)
if n == 6:
addr = td.text
ext.append(addr)
ext_data.append(ext)
print(ext_data)
- 위 코드는 시공분야를 '창호 및 유리공사'로 선택한 상태에서 1페이지의 리스트를 추출하는 코드임
- URL을 살펴보면, https://jibsuri.seoul.go.kr/repair/entInfo/entList.do?pageIndex=1&sggCode=&cnstrctCode=05
- pageindex=1이기 때문에 전체 페이지로 순환하면서 추출하려면 이 숫자를 변경하면 되고,
- 시공분야는 총 14개로 '01' ~ '14'까지임을 소스 코드 및 자바스크립트 코드에서 확인함
- 크롤링 추출 코드에서 보면, 이 사이트는 headers가 있어야 접근이 가능했으며,
- 특이한 점은 시공분야(td index 5번째)의 경우, 추출이 안 되어서 확인해보니 개발자도구에서는 보이지 않고 페이지소스보기에서만 <input type="hidden" name="main_cnstrct_fld" value = "05,09"> 처럼 hidden 타입이 보이고 값이 시공분야의 value 값인 '01'~'14' 형식으로 되어있어서 추출 후에 sigong dict 값으로 치환하여 표시를 해야만 했음
▶ 페이지 순환 함수(전체 페이지 추출)로 만든 코드 보기 ◀
서울시 집수리닷컴 집수리 업체 정보 추출 - IT잇수
서울시 집수리닷컴 웹사이트는 서울 시민 중에서 집수리 지원 조건에 해당하는 저소득 가구의 집수리 공사를 돕기 위한 정책이며, 이 지원 정책을 수행하기 위한 시공업체들의 목록을 제공하는
itssu.kr
[실행 결과]
[['217', '여자만협동조합', '181-81-00860', '유정은', '건설업', '창호 및 유리공사, 수장공사(도배,마감공사)', '서울특별시 은평구 은평로 245 사회적경제허브센터 3층'],
['216', '다움디자인', '619-02-40756', '정은화', '건설업, 서비스', '방수공사, 창호 및 유리공사, 타일공사, 단열공사, 난방설비공사(보 일러)', '서울특별시 서초구 방배선행길 8 상가동 201호'],
['215', '이레나', '314-62-00440', '최에스더', '가구제조업, 실내장식사업', '방수공사, 목공사, 창호 및 유리공사, 타일공사, 도장공사, 단열공사, 수장공사(도배,마감공사), 난방설비공사(보일러), 전기(배관/배선)공사, 기타', '경기도 고양시 덕양구 고골길 108 제다동'],
['214', '유한회사 한흥', '696-81-01584', '김한흥', '건 설업', '목공사, 금속공사, 창호 및 유리공사, 타일공사, 도장공사, 단열공사, 수장공사(도배,마감공사), 급배수위생설비공사, 전기(배관/배선)공사, 조명공사', '서울특별시 강서구 방화대로 294 513호'],
['213', '아리별인테리어', '204-05-60060', '백종필', '인테리어', '방수공사, 목공사, 창호 및 유리공사, 단 열공사, 난방설비공사(보일러)', '서울특별시 금천구 독산로10길 12 101호'],
['212', 'DH창호', '126-25-90904', '최지나', '플라스틱창호제조, 창호공사, 인테리어, 바닥재', '창호 및 유리공사', '경기도 하남시 춘궁로141번길 22-116 DH창호'],
['211', '(주)일하는소리', '135-88-01638', '최용태', '실내건축, 인테리어, 폐기물처리, 일반건축공사', '방수공사, 창호 및 유리공사, 단열공사, 수장공사(도배,마감공사), 급배수위생설비공사', '서울특별시 마포구 월드컵로36길 14 1314호'],
['210', '(주)셀핀랩', '741-87-02279', '박창영', '건축물 마무리 공사업', '방수공사, 목공사, 창호 및 유리공사, 타일공사, 도장공사, 단열공사, 수장공사(도배,마감공사), 난방설비공사(보일러), 전기(배관/배선)공사, 조명공사', '서울특별시 광진구 능동로 209 327호'],
['209', '선민종합관 리', '683-02-02525', '정수민, 유희보', '건축물 일반 청소업, 시설관리, 인테리어, 간판, 전기설비, 공사, 매트리스, 카펫트, 유', '방수공사, 목공사, 창호 및 유리공사', '경기도 성남시 중원구 자혜로16번길 25-13 201호'],
['208', '대신창호공사', '105-11-95910', '이명숙', '창호, 철물공사, 인테리어', '금속공사, 창호 및 유리공사', '서울특별시 은평구 은평로8길 16-3 401호']] 결과
블로그 인기글
Windows 10 탐색기 느려지는 증상과 해결하는 방법
잘 작동하던 Windows 10 탐색기가 갑자기 느려지는 증상이 발생했을 때 어떻게 조치를 하는지 구글에서 찾아보니 많은 해결책들이 있었으나 어떤 것이 정확한 해결책인지는 알 수가 없었다. 그래서 해결방법이라고 제시한 것들을 정리해 보았다. 윈도우 탐색기가 느려지는 증상 해결 방법 어느 순간부터 응용프로그램(VS Code 등)에서 폴더 열기나 파일 불러오기를 했을 때 검색 팝업창이 안 뜨거나 열리는 시간이 엄청 느려지는 증상과, 더불어서 탐색기도 실행이 많이 느려지는 증상이 있었다. 기존에 사용하던 VS Code에 openpyxl 설치 후 실행이 느려지는 증상이 발생하더니 윈도우10 탐색기도 느려져서 사용할 수가 없었다. 노트북에 OS(Windows10)를 설치한지 1년이 다 되어가긴 했지만, 1개월 전..
goodthings4me.tistory.com
[국세청] 현금영수증가맹점으로 가입바랍니다. 메시지 해결방법(개인사업자)
▶ 현금영수증 가맹점 가입 메시지를 받고... 온라인 쇼핑몰 사업을 시작하려고 사업자등록증을 발급받고 난 후 얼마 안 있어서 국세청으로부터 어느 시점까지 '현금영수증 가맹점'으로 가입하라는 문자메시지가 받았었다. 그 메시지 기한이 오늘 도래했는데, 인터넷에서 찾아보니 홈택스에서 현금영수증 발급 사업자 신청을 할 수가 있었다. [관련내용] 홈>국세정책/제도>전자(세금)계산서/현금영수증/신용카드>현금영수증∙신용카드>가맹점가입 ▶ 홈택스 사이트에서 신청하는 절차는 다음과 같다. 우선, 홈택스에 로그인을 해야 합니다. 세상이 좋아져서 공인인증서 없이도 손쉽게 간편인증 로그인이 가능하다. 여러 인증방법 중 카카오톡 인증이 가장 편리한 거 같다. 간편인증 로그인 후 상단 '조회/발급' 탭 클릭 후 '현금영수증>현금..
goodthings4me.tistory.com
[엑셀] 근무연수 및 근무 개월수 계산하는 함수
직장을 다니다 보면 몇 년 몇 개월 또는 전체 며칠을 다니고 있는지 궁금할 때가 있다. 아니면, 총무나 인사 일을 할 때 직원들의 근속연수 또는 근속개월수 등을 계산하고 싶을 때도 있다. 이런 경우 엑셀 함수를 활용하면 어떨까!! 근무연수 및 근무 개월수 계산 함수 알아보기 엑셀에서 근무연수 또는 근무 개월수 계산하는 것은 datedif() 함수를 사용하면 간단하게 해결할 수 있다. 아래 이미지를 보면서 설명하면, 셀 E1에 기준일자를 입력하고, 근무연수를 구할 때는 =datedif(B3,$E$1,"Y")&"년" 을 입력한다. 근무개월수는 =datedif(B3,$E$1,"M")&"개월" 처럼 입력한다. 일수까지 파악할 때문 별로 없지만, 심심풀이로 구해보고 싶을 때 =datedif(B3,$E$1,"D")..
goodthings4me.tistory.com
'코딩 연습 > 파이썬 크롤링' 카테고리의 다른 글
크롬 드라이버 자동 설치, vs code로 selenium 실행해 보기 (0) | 2023.11.22 |
---|---|
[파이썬 크롤링 연습] 가정용 보일러 인증제품 목록 수집 (0) | 2023.11.08 |
구분자로 연결된 문자열의 일부분을 추출하는 방법 (0) | 2023.03.25 |
전원주택라이프 웹 사이트 크롤링 테스트 (0) | 2023.03.25 |
네이버 블로그 제목 리스트 추출해보기 (0) | 2022.08.23 |
댓글