다운받은 json파일에서 특정 항목의 데이터를 크롤링하여 csv파일로 저장하는 예제(exam21_crawl2)
페이지 정보
작성자 관리자 댓글 0건 조회 267회 작성일 22-03-03 23:27본문
○ 실행화면
○ jsonviewer(json뷰어) 를 이용하여 json파일을 보기좋게 볼수있음
json뷰어사이트 http://jsonviewer.stack.hu/ 에 text부분에 json의 내용을 붙여넣기 한후 viewer탭에서 변환된 내용을 볼수 있음
list 부분에 배열로 데이터가 들어가 있는 것을 볼수 있습니다
○ 소스코드 설명
import json
import csv
#exam21_json2.json파일(네이버
부평구 호텔)을 다운받아 동일 폴더에 두고 불러온후
#exam21_2.csv에 필요한 항목을 저장하는 예제
#csv로 저정한후 분류 항목에서 구분하여 애견샵등은 필터링 가능
with
open('./exam21_crawl2.json', 'r', encoding='utf-8') as f:
ls_dict = json.load(f)
#json파일 전체 출력시
#print(json.dumps(ls_dict))
ls_items =
ls_dict.get("list")
f = open('./exam21_2.csv','w',encoding='euc-kr',newline='')
wr=csv.writer(f)
wr.writerow(['연번','업체명','분류','지번주소','도로명주소','연락처'])
#
tel,virtualtel,teldisplay 중에 연락처가
있는 자료는
ls_phone에 넣어서 출력 및 저장
#
json파일에서 부평구인 데이터만 출력 및 엑셀파일에 저장
for
item in ls_items: #ls_items에 들어있는
배열의 개수만큼 반복함
ls_rank = item.get("rank")
print(ls_rank)
ls_name = item.get("name")
print(ls_name)
ls_category = item.get("category")
ls_address = item.get("address")
print(ls_address)
ls_roadaddress = item.get("roadAddress")
print(ls_roadaddress)
ls_tel = item.get("tel")
print('tel:'+ls_tel)
ls_phone=''
#연락처는 사전에 초기화를 시킨후 변수에 값을 담음
if ls_tel != '':
ls_phone = ls_tel
ls_virtualtel = item.get("virtualTel")
print('vtel'+ls_virtualtel)
if ls_virtualtel != '':
ls_phone = ls_virtualtel
ls_teldisplay = item.get("telDisplay")
print('teldisp'+ls_teldisplay)
if ls_teldisplay != '':
ls_phone = ls_teldisplay
print('phone'+ls_phone)
if '부평구' in ls_address:
wr.writerow([ls_rank, ls_name, ls_category, ls_address, ls_roadaddress, ls_phone])
f.close()
첨부파일
- exam21_crawl2.json (156.9K) 10회 다운로드 | DATE : 2022-03-03 23:27:33
댓글목록
등록된 댓글이 없습니다.