-
서울시 집수리닷컴 시공업체 추출 파이썬 크롤링 연습코딩 연습/파이썬 크롤링 2023. 5. 14. 19:47반응형
서울시 집수리닷컴은 주거환경 개선을 위한 집수리 비용 보조 사업을 홍보하고 운영하는 웹 사이트인데, 이 사이트에 등록된 집수리 시공업체를 보면, 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호']] 결과
반응형'코딩 연습 > 파이썬 크롤링' 카테고리의 다른 글
크롬 드라이버 자동 설치, vs code로 selenium 실행해 보기 (0) 2023.11.22 [파이썬 크롤링 연습] 가정용 보일러 인증제품 목록 수집 (0) 2023.11.08 구분자로 연결된 문자열의 일부분을 추출하는 방법 (0) 2023.03.25 전원주택라이프 웹 사이트 크롤링 테스트 (0) 2023.03.25 네이버 블로그 제목 리스트 추출해보기 (0) 2022.08.23