크롤링이란?
무수히 많은 컴퓨터에 분산 저장되어 있는 문서를 수집하여 검색 대상의 색인으로 포함시키는 기술.
API 기반 정보수집
프로그램을 위한 정보 제공 API가 존재
1. Naver Crawling
NAVER Developers
네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음
developers.naver.com
1 ) 개발자 센터 가입
2 ) 서비스 api 선택
3 ) 오픈 api 이용 신청
[예시]
파이썬 urllib 패키지로 웹 크롤링
1 ) "인공지능"과 관련된 블로그 검색 (검색 API 이용)
'''
import os
import sys
import urllib.request
import datetime
import time
import json
client_id = '발급 받은 자신의 ID'
client_secret = '발급 받은 자신의 비밀번호'
LEC=True
def getRequestUrl(url):
req = urllib.request.Request(url)
req.add_header("X-Naver-Client-Id",client_id)
req.add_header("X-Naver-Client-Secret",client_secret)
try:
response = urllib.request.urlopen(req)
if response.getcode() == 200:
print( "[%s] Url Request Success" % datetime.datetime.now())
return response.read().decode('utf-8')
except Exception as e:
print(e)
print("[%s] Error for URL : %s" % (datetime.datetime.now(),url))
return None
LEC:
q = urllib.parse.quote("인공지능")
url = "https://openapi.naver.com/v1/search/blog.json?query=%s&display=2"%q
print (url)
resp = getRequestUrl(url)
print (resp)
'''
<코드 결과>
2 ) 장르를 정해 영화 제목 검색 (검색 API 이용)
1 : 드라마 2: 판타지 3: 서부 4: 공포 5: 로맨스 6: 모험 7: 스릴러 8: 느와르 9: 컬트 10: 다큐멘터리
'''
import os
import sys
import urllib.request
import json
client_id = "발급 받은 자신의 ID"
client_secret = "발급 받은 자신의 비밀번호"
encText = urllib.parse.quote("a")
url = "https://openapi.naver.com/v1/search/movie.json?query=%s&start=1&display=20&genre=10" % encText
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
response = urllib.request.urlopen(request)
rescode = response.getcode()
if(rescode == 200):
response_body = response.read()
else:
print("Error Code:"+rescode)
res_data = response_body.decode('utf-8')
result = json.loads(res_data)
for i in result['items']:
print(i['title'])
'''
2. Facebook API
Facebook for Developers
Facebook for Developers와 사용자를 연결할 수 있는 코드 인공 지능, 비즈니스 도구, 게임, 오픈 소스, 게시, 소셜 하드웨어, 소셜 통합, 가상 현실 등 다양한 주제를 둘러보세요. 개발자를 교육하고 연
developers.facebook.com
1 ) 개발자 등록
2 ) app 등록
3 ) token 획득
참조
API Reference — Facebook SDK for Python 4.0.0-pre documentation
This page contains specific information on the SDK’s classes, methods and functions. class facebook.GraphAPI A client for the Facebook Graph API. The Graph API is made up of the objects or nodes in Facebook (e.g., people, pages, events, photos) and the c
facebook-sdk.readthedocs.io
그래프 API - 문서 - Facebook for Developers
그래프 API를 사용하면 Facebook의 소셜 그래프에서 데이터를 읽고 쓸 수 있습니다.
developers.facebook.com
[예시]
'''
import ullib3
import facebook
import requests
token = '발급 받은 token'
graph = facebook.GraphAPI(access_token=token)
profile = graph.request("me?fields=id,name')
print(profile)
'''
<코드 실행 결과>
'전공 > Data Analysis' 카테고리의 다른 글
[이론] 키와 무결성 제약조건 (0) | 2022.03.11 |
---|---|
[빅데이터 분석] 크롤링 -(3) (0) | 2021.04.12 |
[빅데이터 분석] 크롤링 - (2) (0) | 2021.04.12 |