다양한 포멧 데이터 수집 - 다양한 Open API 사용하기

1. 다양한 Open API 사용하기

1.1 정부3.0 공공 데이터 포털 API 사용하기

  • JSON 이외에 XML 포멧으로 데이터를 다루는 경우도 많음
    • XML 관련 내용은 '다양한 데이터 읽기 - XML 파일' 참조

1.2. 다양한 사이트 크롤링 - 트위터

# 예제 코드1: 검색 키워드를 활용한 트위터 게시글 단순 검색

import tweepy

# 트위터 Consumer Key (API Key)
consumer_key = "RFBQEY174fxDNIRE8y9oklE11"
# 트위터 Consumer Secret (API Secret)
consumer_secret = "ADx5aV2kgX9m5NkecaFjIvKZKNyOY75wt7pkNaxFgv3C6pWLYx"

# 1차 인증: 개인 앱 정보 
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)

# 트위터 Access Token
access_token = "211926849-b1BlQAY7vV5tGlScXfUeCWid8V2hpP4g8APJjxPS"
# 트위터 Access Token Secret
access_token_secret= "p1zHAQ5tMWGNYlUjUKWjdb51fmNgSZHW8tU08ornpn5bU"

# 2차 인증: 토큰 정보
auth.set_access_token(access_token, access_token_secret)

# 3. twitter API 생성  
api = tweepy.API(auth)

keyword = "갤럭시노트8";     # 검색할 키워드

tweets = api.search(keyword) # 한 번에 15 트윗 검색 정보를 가져옴
# tweets = api.search(keyword, count=100) # 일반 계정으로는 최대 100개 최신 게시물을 가져올 수 있음
for num, tweet in enumerate(tweets):
    print(num, "]", tweet.text)
    print (tweet.favorite_count)
    print (tweet.retweet_count)
0 ] ■갤럭시노트8,V30,아이폰7,최신 스마트폰 최저가 ,SKT,KT,LG 3사 가격비교: https://t.co/w8uAUpPZ2h ●전국 최대 지원금과 스페셜 사은품 11종 증정!!
0
0
1 ] RT @eiji_enzy1641: MCU컨셉아티스트 앤디(Andy Park)님의 갤럭시 노트8 헬라 그리기.
와... 와...!!!!!!!!! https://t.co/NfYsQSAL9c
0
728
2 ] 갤럭시 노트 8 써본사람~
0
0
3 ] 갤럭시 노트8... 스피커...성능...
0
0
4 ] RT @eiji_enzy1641: MCU컨셉아티스트 앤디(Andy Park)님의 갤럭시 노트8 헬라 그리기.
와... 와...!!!!!!!!! https://t.co/NfYsQSAL9c
0
728
5 ] RT @eiji_enzy1641: MCU컨셉아티스트 앤디(Andy Park)님의 갤럭시 노트8 헬라 그리기.
와... 와...!!!!!!!!! https://t.co/NfYsQSAL9c
0
728
6 ] RT @eiji_enzy1641: MCU컨셉아티스트 앤디(Andy Park)님의 갤럭시 노트8 헬라 그리기.
와... 와...!!!!!!!!! https://t.co/NfYsQSAL9c
0
728
7 ] RT @eiji_enzy1641: MCU컨셉아티스트 앤디(Andy Park)님의 갤럭시 노트8 헬라 그리기.
와... 와...!!!!!!!!! https://t.co/NfYsQSAL9c
0
728
8 ] RT @eiji_enzy1641: MCU컨셉아티스트 앤디(Andy Park)님의 갤럭시 노트8 헬라 그리기.
와... 와...!!!!!!!!! https://t.co/NfYsQSAL9c
0
728
9 ] RT @eiji_enzy1641: MCU컨셉아티스트 앤디(Andy Park)님의 갤럭시 노트8 헬라 그리기.
와... 와...!!!!!!!!! https://t.co/NfYsQSAL9c
0
728
10 ] ■갤럭시노트8,V30,아이폰7,최신 스마트폰 최저가 SKT,KT,LG 통신사 3사 가격비교상담: https://t.co/eFWH2tnPaC ●전국 최대 지원금과 스페셜 사은품 11종!!!!
0
0
11 ] RT @eiji_enzy1641: 삼성모바일이 토르 라그나로크 프리미어 스폰서라서 그런지 라이언 메이너딩이 갤럭시 노트8로 그림 그리는걸 볼줄은 생각도 못했네... https://t.co/aGXCWQwqsY
0
57
12 ] RT @eiji_enzy1641: MCU컨셉아티스트 앤디(Andy Park)님의 갤럭시 노트8 헬라 그리기.
와... 와...!!!!!!!!! https://t.co/NfYsQSAL9c
0
728
13 ] RT @eiji_enzy1641: MCU컨셉아티스트 앤디(Andy Park)님의 갤럭시 노트8 헬라 그리기.
와... 와...!!!!!!!!! https://t.co/NfYsQSAL9c
0
728
14 ] RT @eiji_enzy1641: MCU컨셉아티스트 앤디(Andy Park)님의 갤럭시 노트8 헬라 그리기.
와... 와...!!!!!!!!! https://t.co/NfYsQSAL9c
0
728
# 예제 코드2: 검색 조건을 활용한 트위터 게시글 상세 검색

import tweepy

# 트위터 Consumer Key (API Key)
consumer_key = "Znhjhrr7zxp4S42zDKbYjR4mG"
# 트위터 Consumer Secret (API Secret)
consumer_secret = "45rTmASGsACobQvG6dYzHTnV9SiIk7JhoFDAqpeH7CxM09RGDY"

# 1차 인증: 개인 앱 정보 
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)

# 트위터 Access Token
access_token = "211926849-b1BlQAY7vV5tGlScXfUeCWid8V2hpP4g8APJjxPS"

# 트위터 Access Token Secret
access_token_secret= "p1zHAQ5tMWGNYlUjUKWjdb51fmNgSZHW8tU08ornpn5bU"

# 2차 인증: 토큰 정보
auth.set_access_token(access_token, access_token_secret)

# 3. twitter API 생성  
api = tweepy.API(auth)

keyword = "스마트폰";     # OR 로 검색어 묶어줌, 검색어 5개까지 가능 (반드시 OR 는 대문자로 작성해야 함)
location = "%s,%s,%s" % ("35.95", "128.25", "1000km")  # 트윗 지역 기준 검색, 대한민국 중심 좌표, 반지름  

# tweepy.Cursor 메서드를 사용하면, pagination 이 자동 관리되어 100개 이상의 검색 결과를 가져올 수 있음
# 모든 트위터 데이터가 검색되는 것은 아님(트위터사에서 이를 명시하고 있음)
cursor = tweepy.Cursor(api.search, 
                       q=keyword,
                       since='2015-01-01',  # 2015-01-01 이후에 작성된 트윗들로 가져옴
                       count=100,           # 페이지당 반환할 트위터 수 최대 100
                       geocode=location,    # 검색 반경 조건
                       include_entities=True)
for i, tweet in enumerate(cursor.items()):
    print("{}: {}".format(i, tweet.text))
# 예제 코드3: 트위터에 간단히 글쓰기

import tweepy

# 트위터 Consumer Key (API Key)
consumer_key = "PaSOnzroDXBEMW2MHcilegC4h"
# 트위터 Consumer Secret (API Secret)
consumer_secret = "9uF4kAKWtpB7mbWQkmhdQJjNxeuptpQUEFEDy3BfaHrf0va73z"

# 1차 인증: 개인 앱 정보 
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)

# 트위터 Access Token
access_token = "211926849-b1BlQAY7vV5tGlScXfUeCWid8V2hpP4g8APJjxPS"
# 트위터 Access Token Secret
access_token_secret= "p1zHAQ5tMWGNYlUjUKWjdb51fmNgSZHW8tU08ornpn5bU"

# 2차 인증: 토큰 정보
auth.set_access_token(access_token, access_token_secret)

# 3. twitter API 생성  
api = tweepy.API(auth)

status = api.update_status(status='파이썬으로 테스트합니다.')  # 트위터에 글쓰기
# api.update_with_media(status='파이썬으로 테스트합니다.', filename='./real_estate.png') # 파일도 업로드 가능함