api 크롤링 다중데이터 수집

2024. 2. 1. 20:47·Python/크롤링
728x90

서울열린데이터 광장에서 api 크롤링을 할 때, 한번에 1천건의 데이터만 불러올 수 있다.

많은 데이터가 필요하면 반복문을 써서 데이터를 수집해야 한다.

http://openapi.seoul.go.kr:8088/(인증키)/xml/tbLnOpendataRtmsV/1/5/

 

위 URL에서 /1/5 부분이 데이터 수를 결정하는하는 것이기 때문에 해당 위치의 숫자만 바꿔주면 된다.

http://openapi.seoul.go.kr:8088/(인증키)/json/tbLnOpendataRtmsV/1/1000/
http://openapi.seoul.go.kr:8088/(인증키)/json/tbLnOpendataRtmsV/1001/2000/
.
.
.

 

1. 우선 해당 URL을 생성하기 위해 반복문을 만든다.

for i in range(1, 5):
    URL = f'http://openapi.seoul.go.kr:8088/{SERVICE_KEY}/json/tbLnOpendataRtmsV/{1 + (i-1) * 1000}/{i *1000}/'
    print(URL)

이렇게 하면 

 

2. 이제 원하는 부분의 데이터를 수집하고 수집한 데이터들을 한 데이터프레임에 합친다.

import requests
import json
import pandas as pd

df = None
for i in range(1, 5):
    URL = f'http://openapi.seoul.go.kr:8088/{SERVICE_KEY}/json/tbLnOpendataRtmsV/{1 + (i-1) * 1000}/{i *1000}/'
    
    req = requests.get(URL)
    content = req.json() #응답받은 JSON데이터를 파싱
   
    result = pd.DataFrame(content['tbLnOpendataRtmsV']['row'])
    df = pd.concat([df, result])
    
df = df.reset_index(drop=True)
df

 

 

총 4,000개의 데이터가 수집됐다!

 

해당 데이터 csv로 저장하려면 아래 코드로 저장하면 된다.

df.to_csv('저장할 파일 이름.csv', index=False)
728x90

'Python > 크롤링' 카테고리의 다른 글

api 크롤링  (0) 2024.02.01
환경변수 설정해서 api 인증키 숨기기  (1) 2024.02.01
크롤링 여러페이지의 데이터 가져오기  (0) 2024.01.31
웹 크롤링 Text 뽑아내기(requests, bs4)  (0) 2024.01.31
'Python/크롤링' 카테고리의 다른 글
  • api 크롤링
  • 환경변수 설정해서 api 인증키 숨기기
  • 크롤링 여러페이지의 데이터 가져오기
  • 웹 크롤링 Text 뽑아내기(requests, bs4)
GinaKim
GinaKim
안녕하세요! 반갑습니다 :)
  • GinaKim
    디디
    GinaKim
  • 전체
    오늘
    어제
    • 분류 전체보기 (91)
      • Python (43)
        • Python 기초문법 (25)
        • 데이터 시각화 (5)
        • 통계 (8)
        • 크롤링 (5)
      • git (5)
      • streamlit (5)
      • django (5)
      • 머신러닝 (18)
      • Spark (4)
      • Google Cloud Platform (8)
      • Tableau (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
GinaKim
api 크롤링 다중데이터 수집
상단으로

티스토리툴바